Jeśli przez ostatnie pół roku korzystałeś z Claude Desktop lub Cursor, prawdopodobnie zauważyłeś panel narzędzi - listę nazwanych akcji, które agent może wywołać w trakcie rozmowy. Te narzędzia pochodzą z serwera MCP. Ten artykuł wyjaśnia, co to oznacza, dlaczego skracacz URL-i pasuje do tego modelu jak ulał, oraz jak podłączyć @elido/mcp-server do obu klientów, by agent mógł skracać URL-e, generować kody QR i pobierać statystyki kliknięć bez opuszczania edytora.
Czym jest MCP#
Model Context Protocol to mały otwarty standard umożliwiający klientom AI - Claude Desktop, Cursor lub dowolnemu kompatybilnemu frameworkowi agentów - odkrywanie i wywoływanie zewnętrznych narzędzi przez ujednolicony interfejs JSON-RPC. Proces serwera działa lokalnie na Twoim komputerze (lub na hoście, który kontrolujesz), udostępnia listę typowanych narzędzi i komunikuje się z klientem przez standardowe wejście/wyjście. Klient wysyła żądanie wywołania narzędzia, serwer wykonuje pracę, a wynik trafia z powrotem do rozmowy jako kontekst. Model nigdy nie widzi Twojego klucza API - widzi go serwer. Cały protokół komunikacji mieści się w kilku kilobajtach na wiadomość; nie ma żadnego SDK, który musisz instalować po stronie klienta, a serwer można napisać w dowolnym języku obsługującym odczyt stdin i zapis stdout.
Krótko mówiąc: MCP to ustandaryzowany sposób wywoływania przez klienta AI kodu, który kontrolujesz. Agent opisuje intencję, narzędzie wykonuje pracę, agent włącza wynik do kontekstu.
Dlaczego skracacz URL-i pasuje do tego modelu#
Problem z krótkimi linkami w każdym workflow z treściami jest ten sam: jesteś w trakcie pisania e-maila lub briefu kampanii, potrzebujesz branded short URL dla CTA i musisz przełączyć się na pulpit nawigacyjny, utworzyć link, skopiować go, wrócić i wkleić. Ta zmiana kontekstu kosztuje trzydzieści sekund, ale co ważniejsze - przerywa tok pisania.
MCP eliminuje zmianę kontekstu. Gdy @elido/mcp-server jest podłączony, agent może wywołać create_link bezpośrednio w trakcie pracy - krótki URL pojawia się w rozmowie i kontynuujesz. To samo dotyczy mniej oczywistych przypadków:
- Tworzenie ogłoszenia o premierze produktu wymagającego pięciu linków UTM dla różnych kanałów: agent może wywołać
create_linkpięć razy z rzędu z różnymi tagami, a następnie umieścić wszystkie pięć w treści. - Prośba do agenta o wygenerowanie kodu QR do drukowanego materiału:
generate_qrzwraca artefakt SVG, który agent udostępnia w kontekście. - Przegląd wyników kampanii z poprzedniego tygodnia:
query_analyticspobiera szereg czasowy kliknięć dla dowolnego linku lub całego workspace'u, z korektą strefy czasowej, bez logowania się do pulpitu.
Żadna z tych operacji nie wymaga od modelu znajomości Twojego API. Wymagają, aby @elido/mcp-server przetłumaczył typowane wywołanie narzędzia na uwierzytelnione żądanie REST i zwrócił wynik.
Serwer MCP Elido wpisuje się w ten model w prosty sposób. Jest to lokalny proces Node siedzący między klientem AI a REST API Elido. Gdy agent wywołuje create_link, serwer tłumaczy to wywołanie na uwierzytelnione żądanie POST /v1/workspaces/{id}/links, obsługuje rozwiązywanie workspace'u i zwraca wynik jako tekst strukturalny, który agent może odczytać. Klucz API nigdy nie opuszcza procesu serwera; klient widzi jedynie wynik narzędzia.
Co serwer oferuje dziś#
@elido/mcp-server jest opublikowany jako @elido/mcp-server na npm (Apache-2.0, wersja 0.1.x). Kod źródłowy znajduje się w packages/mcp-server/ w monorepo Elido. Serwer używa transportu MCP stdio - rozdzielanego wierszami JSON-RPC 2.0 na stdin/stdout - i nie ma zależności runtime poza Node 20+. Nie używa oficjalnego pakietu @modelcontextprotocol/sdk; protokół komunikacji jest zaimplementowany ręcznie, żeby pakiet był mały i łatwy do audytu przed przyznaniem mu klucza API.
Pięć narzędzi dostępnych w wersji 0.1.x:
| Narzędzie | Co robi |
|---|---|
create_link | Skraca URL z opcjonalnym slugiem, domeną, tytułem i tagami. Zwraca pełny rekord linku wraz z krótkim URL. |
list_links | Wyświetla ostatnie linki w workspace'ie, z paginacją. |
query_analytics | Szereg czasowy liczby kliknięć dla workspace'u lub pojedynczego linku, z podziałem na godziny lub dni w dowolnej strefie czasowej IANA. |
generate_qr | Generuje kod QR (SVG lub PNG) dla istniejącego linku. |
list_workspaces | Wyświetla workspace'y, do których klucz API ma dostęp. |
Operacje administracyjne workspace'u - zapraszanie członków, rotacja kluczy API, konfiguracja własnych domen, zarządzanie rozliczeniami - celowo nie należą do powierzchni MCP. Pozostają w pulpicie nawigacyjnym. Powierzchnia narzędzi jest ograniczona do tego, czego agent tworzący treści lub kampanie naprawdę potrzebuje na bieżąco. Jeśli musisz automatyzować provisionowanie workspace'ów, odpowiednimi narzędziami są REST API i provider Terraform.
Uzyskanie klucza API#
Przed konfiguracją któregokolwiek klienta potrzebujesz klucza API z zakresem dla workspace'u, w którym ma działać agent.
- Otwórz Ustawienia → Klucze API w pulpicie nawigacyjnym Elido.
- Kliknij Nowy klucz, nadaj mu nazwę identyfikującą agenta (np.
claude-desktop-mcp) i wybierz zakres Link read/write + Analytics read. Nie przyznawaj zakresu administratora workspace'u, chyba że masz konkretny powód. - Skopiuj klucz - jest wyświetlany tylko raz. Będziesz też potrzebować numerycznego ID workspace'u, widocznego w Ustawienia → Workspace → Ogólne.
Trzymaj klucz poza kontrolą wersji. Pliki konfiguracyjne MCP opisane poniżej znajdują się w katalogu domowym lub w ścieżce lokalnej dla projektu; nie commituj żadnego z nich do współdzielonego repozytorium.
Więcej informacji o zakresach kluczy API i dzienniku audytu rejestrującym każde wywołanie narzędzia znajdziesz w dokumentacji kluczy API.
Konfiguracja Claude Desktop#
Claude Desktop odczytuje listę serwerów MCP z pliku JSON pod adresem:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Jeśli plik nie istnieje, utwórz go. Dodaj blok serwera elido wewnątrz mcpServers:
{
"mcpServers": {
"elido": {
"command": "npx",
"args": ["-y", "@elido/mcp-server"],
"env": {
"ELIDO_API_KEY": "elido_pk_your_key_here",
"ELIDO_WORKSPACE_ID": "42"
}
}
}
}
Zastąp elido_pk_your_key_here swoim rzeczywistym kluczem, a 42 swoim ID workspace'u.
ELIDO_WORKSPACE_ID jest opcjonalne, jeśli klucz ma dostęp do dokładnie jednego workspace'u - serwer rozwiąże go automatycznie. Ustaw jawnie, gdy klucz może widzieć więcej niż jeden workspace; bez tego serwer musi wykonać dodatkowe zapytanie przy każdym wywołaniu narzędzia wymagającym workspace'u, a zachowanie jest nieprzewidywalne, jeśli dostęp zostanie później rozszerzony do drugiego workspace'u.
Po zapisaniu pliku zamknij i uruchom ponownie Claude Desktop. Narzędzia Elido pojawią się w panelu narzędzi. Jeśli nie pojawiają się, sprawdź konsolę developerską Claude Desktop (Pomoc → Pokaż narzędzia developerskie) pod kątem wyjścia stderr z procesu serwera - najczęstszą przyczyną jest literówka w kluczu lub ścieżka command, której nie można rozwiązać.
Jeśli wolisz przypiąć dokładną wersję pakietu zamiast pobierać najnowszą przez npx, najpierw zainstaluj globalnie:
npm install -g @elido/[email protected]
Następnie zastąp parę command / args:
{
"command": "elido-mcp-server",
"args": []
}
Konfiguracja Cursor#
Cursor obsługuje lokalną konfigurację MCP dla projektu przez plik .cursor/mcp.json w katalogu głównym workspace'u. Format jest identyczny z blokiem mcpServers Claude Desktop:
{
"mcpServers": {
"elido": {
"command": "npx",
"args": ["-y", "@elido/mcp-server"],
"env": {
"ELIDO_API_KEY": "elido_pk_your_key_here",
"ELIDO_WORKSPACE_ID": "42"
}
}
}
}
Utwórz .cursor/mcp.json w katalogu głównym projektu (dodaj go do .gitignore, jeśli repozytorium jest współdzielone - plik zawiera aktywny klucz API). Otwórz Cursor Settings → Features → MCP, sprawdź, czy serwer jest wymieniony i pokazuje zielony wskaźnik statusu, a następnie uruchom ponownie panel agenta. Narzędzia Elido pojawią się na liście narzędzi Composer.
Możesz też skonfigurować globalną konfigurację Cursor MCP pod adresem ~/.cursor/mcp.json, jeśli chcesz mieć narzędzia dostępne we wszystkich projektach bez plików konfiguracyjnych per-projekt. Reguły pierwszeństwa są takie same jak w Claude Desktop.
Przykładowa sesja: pisanie e-maila kampanii i skracanie CTA#
Oto jak wygląda rzeczywista interakcja po podłączeniu serwera. Transkrypt agenta jest skrócony, ale odzwierciedla rzeczywisty kształt wywołania narzędzia.
Użytkownik: Napisz krótki e-mail kampanii dla naszej wyprzedaży wiosennej. CTA powinno prowadzić do https://shop.example.com/spring-2026 - skróć to z tagiem spring-2026 i użyj sluga spring, jeśli jest dostępny.
Claude: Najpierw skrócę URL, a potem napiszę e-mail z uwzględnieniem wyniku.
[Wywołanie narzędzia: create_link]
{
"destination_url": "https://shop.example.com/spring-2026",
"slug": "spring",
"title": "Spring 2026 sale CTA",
"tags": ["spring-2026"]
}
[Wynik narzędzia]
{
"id": 1847,
"short_url": "https://s.elido.me/spring",
"destination_url": "https://shop.example.com/spring-2026",
"slug": "spring",
"tags": ["spring-2026"],
"created_at": "2026-05-11T09:14:22Z"
}
Claude: Krótki link to https://s.elido.me/spring. Oto szkic e-maila:
Temat: Wyprzedaż wiosenna - do 40% zniżki, tylko w tym tygodniu
Cześć [Imię],
Nasza wyprzedaż wiosenna ruszyła. Nowości, wyprzedaże i kilka rzeczy, które trzymaliśmy na właściwy moment.
Przejdź do wyprzedaży → https://s.elido.me/spring
Kończy się w niedzielę. Nie potrzeba kodu.
Agent wywołał create_link z parametrami z Twojego promptu, otrzymał z powrotem kanoniczny rekord linku i użył pola short_url w szkicu. Gdyby slug spring był zajęty, API zwróciłoby błąd 409, a agent spróbowałby alternatywy lub przedstawił konflikt do rozwiązania.
Zauważ, że domain_id nie zostało podane w wywołaniu narzędzia. Serwer rozwiązuje go automatycznie: jeśli nie podano domain_id, pobiera listę domen workspace'u i wybiera pierwszą zweryfikowaną domenę. Dla workspace'ów w planie darmowym jest to f.elido.me; dla płatnych workspace'ów jest to s.elido.me lub własna domena, jeśli jest skonfigurowana. Jeśli chcesz konkretną domenę, podaj jej numeryczne ID jawnie - możesz je sprawdzić za pomocą list_workspaces lub z pulpitu nawigacyjnego.
Możesz też poprosić agenta o obsługę wielu linków w jednej turze. „Utwórz linki z tagami UTM dla e-maila, Twittera i LinkedIn - wszystkie prowadzące do strony wyprzedaży wiosennej" spowoduje trzy kolejne wywołania create_link z różnymi zestawami tagów, a agent przedstawi wszystkie trzy krótkie URL-e w tabeli, którą możesz wkleić bezpośrednio do briefu kampanii. Ten wzorzec zastępuje ręczne budowanie UTM w pulpicie dla rutynowej konfiguracji kampanii, choć nie obsługuje jeszcze systemu szablonów UTM na poziomie workspace'u (omówionego w przewodniku po śledzeniu UTM) - ten poziom automatyzacji nadal wymaga REST API.
Przykładowa sesja: pobieranie statystyk kliknięć#
Drugi wzorzec to pobieranie analityki podczas przeglądu kampanii bez otwierania pulpitu nawigacyjnego.
Użytkownik: Jak radziły sobie linki spring-2026 w zeszłym tygodniu? Podziel to według dni, czas berliński.
Claude: Pobiorę szereg czasowy dla tego linku.
[Wywołanie narzędzia: query_analytics]
{
"link_id": 1847,
"from": "2026-05-04",
"to": "2026-05-10",
"interval": "day",
"tz": "Europe/Berlin"
}
[Wynik narzędzia]
{
"items": [
{ "bucket": "2026-05-04", "clicks": 312 },
{ "bucket": "2026-05-05", "clicks": 489 },
{ "bucket": "2026-05-06", "clicks": 701 },
{ "bucket": "2026-05-07", "clicks": 1204 },
{ "bucket": "2026-05-08", "clicks": 988 },
{ "bucket": "2026-05-09", "clicks": 623 },
{ "bucket": "2026-05-10", "clicks": 417 }
],
"total": 4734,
"tz": "Europe/Berlin"
}
Claude: Link spring otrzymał 4 734 kliknięcia w zeszłym tygodniu. Środa–czwartek to był szczyt (701 → 1 204), co pokrywa się z wysyłkami e-mail w połowie tygodnia. Ruch opadał przez weekend. Jeśli e-mail kampanii został wysłany w czwartek rano czasu berlińskiego, skok jest zgodny z oczekiwaniami.
Aby porównać wiele linków, poproś agenta o wywołanie query_analytics raz na link i zebranie wyników. To kilka dodatkowych wywołań narzędzi, ale agent obsługuje pętlę; otrzymujesz tabelę porównawczą bez otwierania pulpitu ani pisania skryptu.
Parametr tz zapewnia, że dzienne kubełki są wyrównane do lokalnej północy, a nie UTC. E-mail kampanii wysłany o 9:00 czasu CET, który sprawdzasz w UTC, będzie miał ruch z pierwszego dnia podzielony na dwa dni UTC - tz: Europe/Berlin tego unika. Obsługa stref czasowych pochodzi z pracy analitycznej fazy 6.A opisanej na stronie serwera MCP.
Bezpieczeństwo - zakres klucza, żądania serwera, dziennik audytu#
Kilka rzeczy wartych wiedzy przed wdrożeniem tego w zespole.
Ogranicz zakres klucza. Narzędzia create_link i generate_qr potrzebują dostępu do zapisu linków. query_analytics potrzebuje odczytu analityki. list_links i list_workspaces potrzebują odczytu linków. Jeśli Twój workflow jest tylko do odczytu - pobieranie metryk podczas przeglądu - utwórz klucz z dostępem do odczytu analityki + odczytu linków i przekaż go do serwera. Serwer wywoła tylko endpointy, do których klucz ma uprawnienia; wszystko inne zwróci błąd 403, który pojawi się jako błąd w odpowiedzi agenta.
Co serwer wysyła. Każde wywołanie narzędzia staje się uwierzytelnionym żądaniem do api.elido.app z nagłówkiem Authorization: Bearer <key>. Serwer wysyła nagłówek User-Agent: elido-mcp-server/0.1.0 przy każdym żądaniu; ten ciąg jest widoczny w dzienniku audytu. Żadne dane nie są wysyłane do Anthropic ani żadnej zewnętrznej usługi przez sam serwer - serwer MCP to lokalny proces pośredniczący między klientem a API Elido. Jakie dane klient AI wysyła do własnego backendu (Twój prompt Claude Desktop, wyniki narzędzi wracające do kontekstu) regulują własne polityki danych Anthropic lub Cursor, a nie Elido.
Dziennik audytu. Każde wywołanie API wykonane przez serwer MCP pojawia się w Ustawienia → Dziennik Audytu w pulpicie, oznaczone nazwą klucza i adresem IP źródła. Jeśli widzisz nieoczekiwane wywołania narzędzi, natychmiast zrotuj klucz w Ustawienia → Klucze API. Dziennik audytu jest dostępny w planach Pro i Business.
Klucz w pliku konfiguracyjnym. Blok env w claude_desktop_config.json i .cursor/mcp.json przechowuje klucz w postaci jawnej. Na prywatnym komputerze jest to akceptowalne; w środowisku współdzielonym lub zarządzanym preferuj wstrzykiwanie klucza przez systemowy keychain lub menedżer sekretów i odwoływanie się do niego przez zmienną środowiskową odczytywaną pośrednio przez konfigurację MCP. W konfiguracjach zespołowych każdy członek powinien mieć własny klucz - współdzielone klucze sprawiają, że atrybucja w dzienniku audytu traci sens.
Ograniczenia#
Kilka rzeczy, których serwer MCP celowo nie robi.
Brak operacji administracyjnych workspace'u. Zapraszanie członków zespołu, konfiguracja własnych domen, zarządzanie rozliczeniami planu, tworzenie lub usuwanie workspace'ów - żadna z tych operacji nie jest w powierzchni narzędzi. Te operacje są wystarczająco konsekwentne, żeby wymaganie zalogowanego człowieka w pulpicie było właściwą kontrolą. Powierzchnia MCP jest celowo ograniczona do pracy, którą agent tworzący treści lub kampanie potrzebuje na bieżąco. Jeśli musisz automatyzować provisionowanie workspace'ów, REST API i provider Terraform są właściwymi narzędziami.
Brak strumieniowania w czasie rzeczywistym. Obecny transport to stdio z synchronicznym modelem żądanie/odpowiedź. Transport SSE jest w planach. Dla większości workflow agentów - stworzenie linku, pobranie kodu QR, pobranie cotygodniowego szeregu czasowego - model synchroniczny jest wystarczający. W przypadku zastosowania wymagającego strumieniowania dużej listy linków lub obserwowania licznika kliknięć na żywo, odpowiednimi narzędziami są dziś pulpit lub REST API.
Obowiązują limity szybkości. API Elido egzekwuje limity szybkości per-klucz niezależnie od tego, czy wywołującym jest człowiek, skrypt czy serwer MCP. Limity według poziomu planu są w dokumentacji API. Workflow agentów wywołujących create_link w ścisłych pętlach - masowe tworzenie setek linków programowo - powinny korzystać bezpośrednio z endpointu masowego importu REST (POST /v1/links/bulk) zamiast wydawać setki pojedynczych wywołań create_link. Serwer MCP jest zoptymalizowany do interaktywnego, bezpośredniego użytku; operacje masowe należą do powierzchni skryptowej.
query_analytics zwraca tylko liczby kliknięć. Szereg czasowy zwracany przez narzędzie query_analytics to liczby kliknięć pogrupowane według czasu. Nie zwraca podziałów geograficznych, podziałów według urządzeń, danych o referrerach ani atrybucji konwersji. Są dostępne w pulpicie i przez pełne REST API analityki, ale nie są częścią obecnej powierzchni narzędzi MCP. Jeśli Twój workflow agenta wymaga podziału na kraje według linku, wywołaj bezpośrednio REST API.
Co dalej#
Kod źródłowy serwera i tracker zgłoszeń znajdują się w packages/mcp-server/ w monorepo Elido. Pakiet jest opublikowany z npm provenance, więc każde wydanie jest kryptograficznie powiązane z commitem, z którego zostało zbudowane - audyt artefaktu publikacji jest prosty.
Strona integracji MCP zawiera dokumentację narzędzi, matrycę zakresów i konfigurację self-host wskazującą ELIDO_API_BASE na prywatną instancję Elido. Jeśli jesteś w planie obejmującym konfigurację MCP workspace'u, strona opisuje też workflow rotacji kluczy dla zespołu.
Dwa konfiguracje warte wypróbowania w pierwszej kolejności:
-
Skonfiguruj Claude Desktop zgodnie z powyższym opisem, otwórz nową rozmowę i wpisz „skróć
https://example.com/testz tagiemmcp-test". Obserwuj wywołanie narzędzia i krótki URL pojawiający się w odpowiedzi. Cała konfiguracja powinna zająć mniej niż pięć minut. -
Jeśli już używasz Cursor do pracy z treścią lub dokumentacją, upuść
.cursor/mcp.jsonw katalogu głównym projektu i poproś Composera o „podsumowanie najlepszych linków zeszłego tygodnia według liczby kliknięć". Wywołanialist_linksiquery_analyticsodbywają się bezpośrednio, a agent zapisuje podsumowanie w czacie.
Obydwa są w wersji beta (0.1.x) - powierzchnia narzędzi będzie rosnąć, ale istniejące dane wejściowe narzędzi nie zostaną usunięte w zakresie 0.1.x. Jeśli coś nie działa zgodnie z opisem, otwórz zgłoszenie z etykietą area:mcp, a my potraktujemy to jako regresję.
Powiązane na blogu#
- Osiąganie p95 < 15ms dla przekierowań z FRA, ASH i SGP
- Masowy import krótkich linków z Google Sheets (prawdziwy workflow kampanii)
- Dlaczego używamy ClickHouse do analityki kliknięć (a nie Postgres)
- Skracacze URL dla SaaS: cykl życia, onboarding, komunikacja w produkcie
Jeśli oceniasz Elido pod kątem kosztów, serwer MCP jest dostępny we wszystkich planach - wywołania narzędzi są wliczone w te same limity szybkości API co każdy inny klient. Widoczność dziennika audytu opisana powyżej wymaga planu Pro lub wyższego. Zobacz stronę cennika dla pełnego porównania planów.
- Marius
Wypróbuj Elido
Wklej URL, otrzymaj krótki link
Bez rejestracji. Link działa 30 dni. Zarejestruj się, aby zachować go na zawsze.
Za darmo, bez rejestracji · 2 dziennie