ghl-context-mcp
ghl-context-mcp
意図的に小さく作られたGoHighLevel MCPサーバー。ツールは6つだけ。対象は1つの仕事に絞っている。つまり「今から話す相手が誰かを知ること」。
なぜ存在するのか
CRMにエージェントを載せたときにありがちな失敗は、ツールの表面が広く汎用的で、APIの生JSONをそのまま吐き出すことだ。その結果、モデルは誤ったツールを選び、誰も声に出さないようなフィールドでコンテキストウィンドウを消費し、時にはレコードを捏造したり上書きしたりする。このサーバーは逆の賭けを取っている。ツールは6つだけ、各ツールはエージェントが相手に話しかけるその瞬間に合わせている。返す各フィールドは、人が実際に口に出すか、次回呼び出しでエージェントがそのまま渡すものだ。日付計算もサーバープ自身で行い、書き込みをオンに切り替えまで無効にしている。狭いサーフェースが広サーフェースに勝る、という主張は測定可能であり、それを測るための伴わ: mcp-tool-surface-bench の`構築を進めっている。
Related MCP server: GHL MCP Server
ツール
Tool | 動作 | 種類 | 上限 |
| 名前、電話番号、メールアドレスから連絡先を1件に解決する。または候補を返す | 読み取り | 400 |
| 直近の通話、SMS、ノート、予約、ステージ変更を、見出しの付きの文章で返す | 読み取り | 1200 |
| 各案件がどのステージにいて、どの形状かを返す | 読み取り | 500 |
| 連絡先またはカレンダー用の予約を今後、相対時刻と共に返す | 取り | 900 |
| ノタを書込。リタイセーフな冪等性と、保存内容のエコーを返す。 | 書込み | 200 |
| 案件を別ステージへ移動する。stale-context チェックで保護。 | 書込み | 250 |
レスポンスごとのトークン上限で、応答がそれ以上になるとビルドを落下すテストで強制しています。この「トークン」の意味は DESIGN.md を参照してください。
使用方法
This is an MCP server. 想定ユーザーは端末の人のではなくAIエージェントです。サーバをあ건ng代理(Claude Code、Claude Desktop、またはMCP対応ランタイム)に接続し、自然言語でエージェントに話しかけます.Resolution の判断はエージェエント側:連絡先の解決、その人の文脈を取り出す。
チーム向けクイックスタート(Claude Code)
リポジトリをクローンして、インストールしてビルドする:
npm install && npm run build認証情報を追加する:
cp .env.example .env # then edit .env and fill in GHL_PIT and GHL_LOCATION_IDClaude Code でフォルダを開く。Claude Code はチェックイン済には
.mcp.jsonを読み取り、ghl-contextサーバーを提示する。その後一度承認すればいい。サーバーは起動時に.envを読み込むに入っているため、設定ファイルにトークンが書かれるこるはない。会話は、営業担当が一日の始まりにエージェントと話すように行う:
今日はMarcus HallowayとPriya Nairに電話します。各人の電話する前に事前ブリーフィングを。
エージェントは各連絡先を解決し、タイムライン、パイプライン内位置、今後の予約を取り出し、ブリーフィグを返します。
他のMCP対応クライアント
この Stdio 経由で任意のMCPクライアントを、この;サーバーに接続できます。 公開パッケージはクローンもビルドも不要です。Claude Desktop の場合、claude_desktop_config.json にを追加します:
{
"mcpServers": {
"ghl-context": {
"command": "npx",
"args": ["-y", "ghl-context-mcp"],
"env": {
"GHL_PIT": "pit-...",
"GHL_LOCATION_ID": "your-sub-account-id"
}
}
}
}公開パッケージの代わりにローカルチェックアウトを動く、command に node を設定し、args にビルド済みの dist/index.js を設定します。
環境変数
変数 | 必須 | デフォルト | 意味 |
| 必須 | サブアカウント1つ分のPrivate Integrationトークン | |
| 必須 | そのトークンが所属するサブアカウントID | |
| 任意 |
| これが厳密に |
| 任意 |
| 停滞判定の閾、ステージでの median席位時間倍数. |
| 任意 |
| 連絡先の特定を |
トークンは Settings、Integrations、Private Integrations の顺にて作成し、scope は contacts.readonly, contacts.write, opportunities.readonly, opportunities.write, calendars.readonly を指定します。
引入显示 without a client
MCPクライエントがない場合でも、リーポジトリに球端末デモ me が同梱されています。エージェントと同様のシーケンスを実行して、ブリーフィングを出力:
npm run brief -- "Marcus Halloway"あはデモであり、価値を示すためのものです。製品は、上記のエージェント接続です。
ソースから
npm install
npm run build
npm testnpm test は認証情報がなくても成功します。実機チェックの npm run live-check と npm run live-write-check は、実際は .env が必要です。
レスポンスの形状
男の解:反映された連絡先:
{
"resolution": "exact",
"contact": {
"contact_id": "NnAyKFnTSAVKg1amAArO",
"name": "Marcus Halloway",
"primary_phone": "+15551230010",
"primary_email": "marcus.halloway@example.com",
"tags": ["synthetic-seed"],
"owner": null,
"last_activity_at": null,
"last_activity_summary": null
}
}曖昧な一致の場合、推測ではなく候補を返します:
{
"resolution": "ambiguous",
"candidates": [
{
"contact_id": "...",
"name": "Jordan Wells",
"primary_phone": "+15551230012",
"primary_email": "jordan.wells@example.com",
"last_activity_at": null
},
{
"contact_id": "...",
"name": "Jordan Wells",
"primary_phone": "+15551230013",
"primary_email": "jordan.wells.cpa@example.com",
"last_activity_at": null
}
],
"disambiguate_by": ["email", "primary_phone"],
"instruction": "Ask the user which one, or call again with the exact email or phone."
}曖昧さは成功として扱います。エラーに当たったエージェントは停止しますが、候補リストを渡されたエージェントは続行して、どこの連絡先を指しているかをユーザーに選びます。
エラー
エラーはすべて形は同じ1種類です。未加工のHTTPステータスをモデルが目にすることはありません。
Code | When | リトライ |
| クエリに一致する連絡先がない | 不可 |
| そのIDのオポーチュニテがない | 不可 |
| 対象ステージがパイプラインにない(有効なstages を返す) | 不可 |
| 前提している現在のステージが最新状態と一致しない | 可(再取得後) |
|
| 可 |
| 書取りがオフの状態で書き込みが試環境れた | 不可 |
| トークンに必須スコープが含まれない | 不可 |
| トークンが拒否れた | 不可 |
| GoHighLevel がスロットリング中( | 可 |
| GoHighLevel がエラーを返した | 可(1回のみ) |
| 要求された期間が365日を超えている | 可 |
設計メモ
サーバーはこの8つの通則りの上に成り立っています。各1行にまとめた。それの「どのような」「どのようなもの」を含む長編は DESIGN.md にあります。
ツールごとに1つの仕事。説明文に「and」が必要なら、それは2つツールに分ければばつ.
説明はモデルために書く:いつ使うか、いつ使わないか、そして混同しやすい類似ツールも明して.
の生形LRを外部へ持ち出さない。テストで強制される。
エラーは命令形の指示であり、有効な選択肢を列挙する。
どの応答にもトークン上限があり、ビルドを終えるテストで強制している。
サー、計算をする。経過日数・所要時間・相対時刻・回数など。
書き込みは直している依存する状態を点検し、一致しない場合があります。
書き込みは
GHL_ALLOW_WRITES=trueでない限り無効である。
やらないこと
意図した「切り離し」だ。
していない機能 | なぜか |
| エージェントによるレコードの捏造/上書きが実践に即して悪いです。作成はフォームか人が介在するフローにあります。 |
| エージェント制御での送信メッセージ Henry compliance surface. コンテキストサーバーには不要な機能です。 |
| 制御されない結果セットはコンテキストウィンドウを燃かす。エージェントき必要 は、リストではなく「解決済みの一致」だけ。 |
| スキーマ探索ツールは、ほぼ1ターン無駄にする。名前はツール内でIDに解決され、無効な名前は有効な選択肢を返す。 |
Workflow/オートメーションのトリガー | 究明で説明できず、後から取り戻せないという点で副作用が大きい。 |
| ベンチマークが独立したarmとして利用できるよう意図的に出力。もし有効なら、このデータを背負った形で v2 に載せる。 |
制限
単一のロケーション(サブアカウント)のみ。Private Integration Token 認証のみ、OAuth は非対応。ページネーションはツールごとの上限に制限される。停滞検出は意味を成すのにデータ量が要り、現状 GoHighLevel がステージ履歴を出さないため、固定フォールバックも使っている。電話番号一致は米 mを対象にしている。トークン上限は近似で、Claude tokens と厳密には一致しません。GoHighLevel の読み取りは、書取りよりも約1秒遅れて有効になる。検証されたアカウント形状は1種類。
ライセンス
MIT。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides access to over 460 tools within the GoHighLevel CRM, allowing AI assistants to manage contacts, opportunities, messaging, and business workflows through natural language.2397ISC
- AlicenseNot gradedqualityCmaintenanceEnables Claude to manage GoHighLevel CRM contacts, pipelines, and workflows through natural language commands.35MIT
- FlicenseNot gradedqualityDmaintenanceEnables LLMs to read conversations, send messages, create tasks, and manage calendar appointments within GoHighLevel CRM locations.1
- AlicenseAqualityBmaintenanceEnables AI assistants to interact with GoHighLevel CRM via natural language for lead lookup, pipeline management, messaging, and calendar operations, with read-only mode by default.12MIT
Related MCP Connectors
Stop re-explaining yourself to Agents. Give it the right context, right when needed.
LeadConnector / GoHighLevel MCP Pack — wraps the GoHighLevel CRM for AI agents.
Agent-native CRM. 25 tools — contacts, deals, sequences, enrichment waterfall, audit log.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ceosykes/ghl-context-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server