Planhat MCP

Planhat MCP

Enables interacting with Planhat customer data via natural language, supporting CRUD operations on companies, contacts, opportunities, notes, conversations, users, assets, issues, tickets, tasks, licenses, and invoices.

Category
访问服务器

README

Planhat MCP

CI Release Latest release Node 18+ MCP License: MIT

Talk to your Planhat customer data in plain English.

Struggling to make Planhat's hosted MCP work? Custom connector in Claude that won't connect, or an OAuth login that never completes once it does?

Here's your answer: a Model Context Protocol server for Planhat that runs on your own machine and authenticates with a plain API token. No OAuth flow, no connector setup, nothing to host. Add it to Claude Desktop or any other MCP client and ask for what you need:

"Which companies have licenses renewing this quarter?"

"Create a task for me to follow up with Acme Corp next week."

"Summarize the open tickets for our top five accounts."

Claude reads and updates Planhat directly, live from the conversation. No dashboards, no exports, no SQL.

It runs entirely on your own computer, with your own Planhat API token. No third-party service sits between your AI and your customer data.

Install in Claude Desktop

Download one file, double-click it, paste your token. No terminal, no config files, no code, and nothing to install first.

  1. Download the .mcpb file.
  2. Double-click the downloaded file. Claude Desktop opens an install pop-up.
  3. Review the pop-up and click Install.
  4. Create a Planhat API token if you don't have one: in Planhat, go to Settings > Service Accounts (Private Apps) > API Access Token. Admin access is required.
  5. Paste the token into the token field. It is stored in your system keychain, never in a file on disk.
  6. Optional: tick Read-only mode or Disable delete tools to limit what the AI can do.
  7. Ask Claude: "List my top 3 Planhat companies." An answer means you are done.

Switching from a manual install? Remove the old planhat entry from claude_desktop_config.json first, or you'll see two copies of every tool.

Manual install (Cursor and other MCP clients)

For MCP clients other than Claude Desktop, or if you prefer running from a checkout. Requires Node.js 18 or newer.

1. Get the code and build the server:

git clone https://github.com/da-troll/planhat-mcp.git ~/planhat-mcp
cd ~/planhat-mcp
npm install
npm run build

2. Add your Planhat token:

cp .env.example .env
open .env        # paste your token after PLANHAT_TOKEN= and save

The token stays in that one file on your machine. Treat it like a password.

3. Register the server in your client's MCP config (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json), replacing YOUR-USERNAME:

{
  "mcpServers": {
    "planhat": {
      "command": "node",
      "args": ["/Users/YOUR-USERNAME/planhat-mcp/dist/server.js"]
    }
  }
}

Restart the client and test with the same question as above.

What Claude can do with it

60 tools across 12 Planhat resource types. Every resource supports the same five verbs: list, get, create, update, delete.

Resource What it is
Companies Your customer accounts
Contacts (end users) People at those customers
Opportunities Sales/expansion deals
Notes Logged notes on an account
Conversations All logged touchpoints: emails, calls, notes, tickets
Users Your own team members in Planhat
Assets Products/objects tied to a customer
Issues Bugs and feature requests
Tickets Support tickets
Tasks To-dos and scheduled activities
Licenses Recurring revenue records
Invoices Billing records

Claude only ever does what you ask, and the token you create controls what it can touch. A read-only token makes the whole connector read-only.

Optional hardening

Two switches cap what any connected AI can ever do, no matter what it's asked. Bundle installs get them as checkboxes in the install pop-up; manual installs add either to the .env file:

Setting Effect
PLANHAT_READ_ONLY=1 Only the list/get tools exist; nothing in Planhat can be changed.
PLANHAT_DISABLE_DELETE=1 Everything works except deleting records.

Every tool also carries the standard MCP annotations (readOnlyHint, destructiveHint), so clients that calibrate their permission prompts per tool (asking before destructive calls, auto-approving reads) get the right signals. Whether and when to prompt is always the client's decision; the switches above and the permissions on the Planhat token itself (see SECURITY.md) are the hard limits.

Repository layout

planhat-mcp/
├── README.md                  ← you are here
├── manifest.json              ← .mcpb bundle definition (one-click install)
├── package.json               ← dependencies, scripts, version
├── package-lock.json          ← pinned dependency versions
├── tsconfig.json              ← TypeScript config
├── .env.example               ← token template for manual installs
├── .mcpbignore                ← what stays out of the bundle
├── src/
│   ├── index.ts               ← entry point: load config, serve over stdio
│   ├── server.ts              ← registers tools, applies gates + annotations
│   ├── tools.ts               ← all 60 tool definitions
│   ├── http.ts                ← Planhat REST client
│   └── env.ts                 ← .env loader for manual installs
├── tests/
│   ├── tools.test.ts          ← offline tests for all 60 tools
│   └── http.test.ts           ← HTTP layer: timeout, errors, delete cases
├── AGENTS.md                  ← handbook for AI coding agents
├── CLAUDE.md → AGENTS.md      ← same file, Claude's preferred name
├── LICENSE                    ← MIT
├── CHANGELOG.md               ← release history
├── SECURITY.md                ← token handling & reporting issues
├── CONTRIBUTING.md            ← how to add tools or fix bugs
└── .github/workflows/
    ├── ci.yml                 ← typecheck + tests + bundle gate on every push
    └── release.yml            ← GitHub release with .mcpb asset on version tags

The shipped bundle contains just four files: manifest.json, dist/server.js (one dependency-free build), LICENSE and README.md.

Troubleshooting

Symptom Likely cause & fix
Double-clicking the .mcpb does nothing, or Install is greyed out Update to a recent Claude Desktop; older builds predate one-click .mcpb extensions. You can also install from Settings > Extensions > Advanced > Install Extension.
Every Planhat tool appears twice The bundle and an old manual config entry are both installed. Remove mcpServers.planhat from claude_desktop_config.json.
Claude says it has no Planhat tools Claude Desktop only reads its config on launch. Quit it fully, reopen, and check the JSON has no trailing commas.
HTTP 401 Unauthorized in a tool result The token is wrong, expired, or was rotated. Paste a fresh one.
PLANHAT_TOKEN is not set Bundle installs: re-open the extension's settings and fill in the token. Manual installs: there is no .env beside the server, so repeat manual step 2.
command not found: node (manual install) Install Node.js 18 or newer, or point command at the full path to your node binary.
Tool works but returns [] Usually not an error: that Planhat resource is genuinely empty for your filters.

For engineers

npm install          # install dependencies
npm test             # offline test suite (never touches the live API)
npm run typecheck    # TypeScript type checking
npm run build        # produce dist/server.js
npm start            # run the built server over stdio

Build the one-click bundle locally with npm run build && npx -y @anthropic-ai/mcpb@2.1.2 pack . planhat.mcpb.

Architecture notes, API quirks, and contribution rules live in AGENTS.md and CONTRIBUTING.md. Endpoint paths were verified against the live Planhat API in July 2026. Notably, Planhat has no /notes or /activities REST endpoints; notes and tickets are /conversations under the hood (see AGENTS.md for the full story).

License

MIT. Do what you like, no warranty.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选