1分で読了機能

Claude・Cursor向けElido MCPサーバー導入ガイド

モノレポからElido MCPサーバーを起動し、Claude Desktop、Cursor、Claude Codeに接続します。5つのツールのうち現在実際に動くものも確認します。

Marius Voß
DevRel · edge infra

Elido MCPサーバーは、Claude Desktop、Cursor、Claude Codeがチャットの中から短縮リンクの作成、一覧、クリックの時系列の読み取りを行えるようにする、小さなNodeプロセスです。モノレポのpackages/mcp-serverにあり、stdioでMCPを話し、ほかのすべてと同じREST APIとやり取りします。

先に訂正を1つ。このガイドの以前の版は誤っていました。パッケージはnpmになく、まだ公開されていません。2026-11-11時点でnpm view @elido/mcp-serverは404を返します。一般公開は近日予定で、それまではローカルでビルドしたものを実行します。以下はすべて、packages/mcp-serverとservices/api-coreのコードと照合して確認しました。

MCPとは

Model Context Protocolは、AIクライアントがモデルの外にあるツールを呼び出せるようにするオープンな標準です。クライアントがサーバーを起動または接続し、ツールの一覧を求め、ツール呼び出しをJSON-RPCメッセージとして送ります。サーバーが処理を行い、モデルが読むテキストを返します。APIキーを持つのはモデルではなく、サーバーです。

仕様は2つのトランスポートを定義しており、ローカルのプロセス向けのstdioと、リモート向けのStreamable HTTPです(MCP仕様、最新リビジョン2026-07-28、2026-10-25 閲覧)。Elidoのサーバーが実装しているのは、stdioだけです。

アーキテクチャ図: Claude DesktopとCursorがstdioのJSON-RPCトランスポートでローカルのElido MCPサーバーに接続し、サーバーが認証付きのBearerリクエストをElido REST APIに送る。APIキーはサーバーの内部にとどまり、モデルには見えない Claude、ChatGPT、Cursor、Claude Code、Gemini などのコネクターとセットアップガイドを並べた Elido の連携ページ

サーバーの機能

公式の@modelcontextprotocol/sdkを使わず、依存関係をなくすために手書きされています。src/index.tsでは4つのものに応答します。initialize(プロトコルバージョン2024-11-05を報告)、tools/list、tools/call、そしてnotifications/initialized通知です。ほかはすべて「method not found」エラーになります。リソース、プロンプト、pingのハンドラーはありません。

すべてのツール呼び出しは、ELIDO_API_BASE(既定はhttps://api.elido.app)への認証付きRESTリクエストになり、Authorization: Bearer <key>と、User-Agent: elido-mcp-server/0.1.0ヘッダーが付きます。失敗した呼び出しは、HTTPステータスとレスポンスの最初の400文字を含むエラーとして返されます。

ツール送信するリクエスト状態
create_linkPOST /v1/workspaces/{id}/links動作する。ドメイン未指定なら最初のドメインを選ぶ
list_linksGET /v1/workspaces/{id}/links?limit&offset動作する。limitは1から100
query_analyticsGET /v1/workspaces/{id}/analytics/timeseries動作する。{"items":[{"ts","count"}]}を返す
generate_qrPOST /v1/workspaces/{id}/qrapi-coreに一致するルートが見つからない
list_workspacesGET /v1/workspaces動作する。呼び出し元が所属するワークスペースを一覧する

generate_qrについて。api-coreが提供するのは、公開のPOST /v1/qr/generateと、リンクごとのデザインのGET /v1/workspaces/{id}/links/{link_id}/qrですが、このツールが呼ぶパスには何もありません。これが整理されるまでは、これを前提にしたワークフローは作らないほうがよいでしょう。バックログに入っています。

ビルドとAPIキーの取得

モノレポは非公開のため、以下の手順はパッケージのソースを入手できる場合に当てはまります(一般公開は近日予定)。パッケージをビルドします。

pnpm install
pnpm --filter @elido/mcp-server build

これでpackages/mcp-server/dist/index.jsができます。Node 20以降が必要です(そのpackage.jsonのengines)。

キーは、Dashboard、API keys(/dashboard/api-keys)を開き、エージェントにちなんだ名前を付け、ロールを選びます。フォームにはviewer、editor、adminがあり、既定はeditorです。Elidoのキーが持つのは、ツールごとのスコープではなく、ワークスペースのロールです。viewerのキーが読み取り専用の選択肢で、一覧とアナリティクスの読み取りはでき、APIはcreate_linkを拒否します。お試し用のキーなら、有効期限を設定してください。キーは表示されたときにコピーし、バージョン管理に入れないでください。

Claude Desktopの設定

Claude Desktopはclaude_desktop_config.jsonを読みます。設定ファイルの場所とDeveloper設定のタブは、MCPのドキュメントに説明があります(ローカルサーバーの接続、2026-10-25 閲覧)。macOSでは~/Library/Application Support/Claude/claude_desktop_config.json、Windowsでは%APPDATA%\Claude\claude_desktop_config.jsonです。

{
  "mcpServers": {
    "elido": {
      "command": "node",
      "args": [
        "/absolute/path/to/url-shortener/packages/mcp-server/dist/index.js"
      ],
      "env": {
        "ELIDO_API_KEY": "elido_your_key_here",
        "ELIDO_WORKSPACE_ID": "42"
      }
    }
  }
}

絶対パスを使ってください。ELIDO_WORKSPACE_IDが省略できるのは、キーが見えるワークスペースがちょうど1つの場合だけで、その場合サーバーはGET /v1/workspacesを1回呼んでIDをキャッシュします。ワークスペースが2つ以上あると、変数を設定するよう伝えるエラーを投げるので、最初から設定してください。

保存したらClaude Desktopを再起動します。サーバーが現れない場合は、まず同じコマンドをターミナルで実行してください。キーがなくてもプロセスは止まらず、stderrに警告を出し、以降のツール呼び出しがすべて失敗します。

CursorとClaude Codeの設定

Cursorは、プロジェクトの.cursor/mcp.json、またはすべてのプロジェクト向けの~/.cursor/mcp.jsonから、同じmcpServersの形を読みます(CursorのMCPドキュメント、2026-10-25 閲覧)。上のブロックを貼り付け、有効なキーを含むのでファイルを.gitignoreに追加し、CursorのMCP設定でサーバーを確認します。

Claude Codeは、コマンドラインからstdioサーバーを追加します(Claude CodeのMCPドキュメント、2026-10-25 閲覧)。

claude mcp add --env ELIDO_API_KEY=elido_your_key_here --env ELIDO_WORKSPACE_ID=42 \
  --transport stdio elido -- node /absolute/path/to/packages/mcp-server/dist/index.js

設定ファイル内のキーは平文です。共有のマシンでは、監査の記録が意味を持つよう、各自に別々のキーを持たせてください。

実際のリクエストの形で見る2つのセッション

これらは例示的な会話であって録画ではなく、数字は架空です。ツールの引数と結果の項目は、コードと一致しています。

キャンペーンのリンクを短縮する。 Claudeに、https://shop.example.com/springをスラッグspring、タグspringで短縮するよう頼みます。Claudeはdestination_url、slug、title、tagsを付けてcreate_linkを呼びます。domain_idが渡されていないので、サーバーはまずGET /v1/workspaces/{id}/domainsを取得し、最初に返されたものを使います。ワークスペースに複数のドメインがあるなら、domain_idを自分で渡してください。APIはshort_urlを含むリンクレコードを返し、Claudeはそれを下書きに入れます。スラッグがすでに使われていれば、APIは409「slug already exists for this domain」を返し、Claudeは別のものを選べます。

create_linkの往復: LLMエージェントがURL、スラッグ、タグを付けてcreate_linkを要求し、MCPツールが呼び出しを変換してワークスペースを解決し、api-coreがPOSTを処理してリンクレコードを書き込み、短縮リンクのレコードが返ってエージェントが短縮URLをチャットに埋め込む

先週のクリックを読む。 ベルリン時間で、あるリンクの日別クリックを求めます。Claudeはlink_id、from、to、interval: "day"、tz: "Europe/Berlin"を付けてquery_analyticsを呼びます。日付はYYYY-MM-DDで、fromがtoより前でない範囲はAPIが拒否するため、最終日の翌日をtoとして渡してください。省略した場合、範囲は直近30日です。結果は{"items": [{"ts": "...", "count": 312}, ...]}です。totalの項目はないので、Claudeにカウントを合計してもらってください。クリックのみで、国、デバイス、リファラーの内訳はこのツールからは得られません。

セキュリティと制限

スコープではなくロール。 目的を果たす最も低いロールを選んでください。レポート用のエージェントにはviewer、リンクを作成するものにはeditor、adminは具体的な理由がある場合だけです。

マシンから出ていくもの。 サーバーがリクエストを送るのは、あなたのElido APIのベースだけで、ほかにはありません。AIクライアントが自身のプロバイダーに送るものは、そのプロバイダーのポリシーの対象です。

監査の記録。 キーの作成はapi_key.createdの監査イベントを、リンクの作成はlink.createdを発行します。イベントが個々のキーにどう帰属されるかは確認していないため、2つのエージェントを区別するのに監査ログを当てにしないでください。それぞれに別のキーを与え、キーの一覧を見ておいてください。

レート制限。 呼び出しはワークスペースの制限に数えられます。Freeは毎秒10リクエスト、Proは30、Businessは100で、バーストの許容量はそれぞれ20、60、200です(services/api-core/internal/httpserver/server.go)。数百のリンクを作成するエージェントは、Googleスプレッドシートからの一括インポートのように、APIのPOST /v1/workspaces/{id}/links/bulkを使うべきです。

リモートMCP。 OAuth付きのホスト型エンドポイントで、ClaudeのコネクターがローカルプロセスなしでElidoに接続できるようになるものです。計画中で、まだ作られておらず、ダッシュボードの連携カタログに載っているのはローカルサーバーだけです。当面はそちらを使います。

プロトコルのずれ。 サーバーは2024-11-05を宣言していますが、仕様の現在のリビジョンは2026-07-28です。すべてのクライアントのリリースに対しては検証していないので、更新後は、クライアントでサーバーの状態を確認してください。

今後の方向

上のギャップはバックログに入っています。パッケージの公開、generate_qrの修正、Streamable HTTPとリモートのエンドポイントの追加、ツールの追加(更新、削除、地域別の内訳)、キーごとの監査の帰属です。同じエージェントの考え方への別の道は、GeminiのガイドとChatGPTのガイドを、キーの扱いはリンクツールのAPIキー権限を参照してください。

ブログの関連記事

よくある質問

Elido MCPサーバーはnpmにありますか?

まだです。パッケージはnpmにありません(2026-11-11時点で`npm view @elido/mcp-server`は404を返す)ため、`npx -y @elido/mcp-server`は失敗します。一般公開は近日予定です。それまでは、パッケージのローカルビルド(非公開モノレポのpackages/mcp-server)からのみ実行でき、MCPクライアントをコンパイル済みのdist/index.jsファイルに向けます。

Elido MCPサーバーはどのツールを公開していますか?

5つです。create_link、list_links、query_analytics、generate_qr、list_workspacesです。最初の4つにはワークスペースが必要で、ELIDO_WORKSPACE_IDから取得するか、キーが見えるワークスペースがちょうど1つの場合はそれが使われます。generate_qrは、api-coreで見つけられなかったルートを呼ぶため、修正されるまでは信頼できないものとして扱ってください。

MCPキーを読み取り専用にするにはどうしますか?

ダッシュボードで、viewerロールのAPIキーを作成します。キーが持つのはツールごとのスコープではなく、ワークスペースのロール(viewer、editor、admin、既定はeditor)です。viewerのキーはリンクの一覧とアナリティクスの読み取りができ、create_linkはAPIから権限エラーとして返されます。

ElidoにはClaudeコネクター向けのリモートMCPのURLがありますか?

まだありません。OAuth付きのホスト型MCPエンドポイントはなく、リモートサーバーは計画中です。上に挙げた5つのツールを提供するローカルのstdioサーバーを使ってください。

このサーバーはどのMCPトランスポートとプロトコルバージョンを使いますか?

stdioのみで、改行区切りのJSON-RPC 2.0です。initializeにはプロトコルバージョン2024-11-05で応答し、tools/listとtools/callを処理します。現在のMCP仕様にはStreamable HTTPトランスポートも定義されていますが、このサーバーは実装していません。

ツール呼び出しはレート制限に数えられますか?

はい。このサーバーは通常のAPIクライアントなので、ワークスペースごとの制限が適用されます。Freeは毎秒10リクエスト、Proは30、Businessは100で、バーストはそれぞれ20、60、200です。数百件のリンクには、ツール呼び出しを1件ずつ行うのではなく、一括作成のエンドポイントを使ってください。

Elidoを試す

URLを貼り付けて短縮リンクを取得

登録不要。リンクは30日間有効。永久に保存するには登録してください。

登録不要。無料登録すると月 50 件のリンクを作成できます。

Elidoを試す

EUホスティングのURL短縮サービス。カスタムドメイン、詳細な分析、オープンAPI付き。無料プラン - クレジットカード不要。

タグ
elido mcp server
model context protocol
claude desktop mcp
cursor mcp
claude code mcp
url shortener api

続きを読む