Skip to content

docs: correct MCP setup to match the shipped CLI and server - #1238

Draft
chris-garber-vapi wants to merge 1 commit into
docs/remove-fabricated-gitops-apifrom
docs/fix-mcp-package-mismatch
Draft

chris-garber-vapi wants to merge 1 commit into
docs/remove-fabricated-gitops-apifrom
docs/fix-mcp-package-mismatch

Conversation

@chris-garber-vapi

Copy link
Copy Markdown

Stacked on #1237. Review that one first; the file sets are disjoint.

Problem

Both MCP pages document a different package, different config paths, and different JSON shapes than the tools actually use. Someone following docs.vapi.ai/cli/mcp today edits files that aren't the ones the CLI writes.

vapi mcp setup configures @vapi-ai/mcp-docs-server — documentation lookup, no API key — not @vapi-ai/mcp-server, the action server. Verified at cmd/mcp.go:293.

fern/cli/mcp-integration.mdx

Corrections, each checked against cmd/mcp.go:

Documented Actual
@vapi-ai/mcp-server @vapi-ai/mcp-docs-server
.cursor/mcp.json (project) ~/.cursor/mcp.json
.windsurf/mcp.json ~/.codeium/windsurf/mcp_config.json
VS Code "workspace settings" under github.copilot.advanced ~/.vscode/mcp.json
"servers" key for Cursor/Windsurf "mcpServers"
Server named vapi-docs vapi
args: ["@vapi-ai/mcp-server"] args: ["-y", "@vapi-ai/mcp-docs-server"]

Because those paths are in $HOME, the integration is global — so the page's advice to run setup per project and to commit the config files to your repo was wrong in both directions. Both sections removed.

Also removed, as things that don't exist or don't happen:

  • vapi mcp remove. No such subcommand. Only setup and status are registered (mcp.go:76, :95). Replaced with instructions to edit the entry out by hand, plus a warning not to delete the whole file since it holds your other MCP servers.
  • npm update -g / npm install -g / npm list -g. The command runs via npx -y, so nothing is installed globally and npm list -g will never show it.
  • Fabricated vapi mcp status output, including a Vapi MCP Server: v1.2.3 (latest) line the command doesn't print.
  • "eliminating AI hallucinations" / "API hallucinations are eliminated." Retrieval reduces them; it doesn't eliminate them. Replaced with a note to check generated code against the API reference.
  • The invented IDE-output code samples. Presented as what your assistant "will provide," unverifiable, and at least one used a systemPrompt field Vapi doesn't have.

Added a note at the top distinguishing this documentation server from the action server, since the two pages previously read as if they covered the same thing.

fern/sdk/mcp-server.mdx

  • The vapi mcp setup tip sent readers to a different server entirely. Replaced with a note explaining the distinction.
  • Removed "Connect your client or SDK to the local server endpoint (default: http://localhost:3000)"@vapi-ai/mcp-server communicates over stdio (src/index.ts). There is no port to connect to.
  • Marked the SSE endpoint and its three tabs deprecated in favor of streamable HTTP.
  • Tool catalog was incomplete: the page listed 10 tools, the server registers 13. Added update_assistant, create_tool, and update_tool, enumerated from src/tools/*.ts. Also noted that list_assistants returns at most 10 results — it's hardcoded to { limit: 10 } but was documented as "List all Vapi assistants."

Verification

  • Config paths resolved through getCursorDir/getWindsurfDir/getVSCodeDir (mcp.go:391-415).
  • JSON keys read off the CursorMCPConfig / VSCodeMCPConfig struct tags (mcp.go:37-54).
  • Tool catalog enumerated from registerTool(/server.tool( call sites in the mcp-server repo.
  • All seven internal links confirmed to resolve to real slugs.
  • MDX tags balanced in both files.
  • fern check not run locally — FERN_CLI_PATH is unset and the Fern CLI isn't installed here. MDX body content only, no docs.yml or API spec changes.

Not execution-tested: the CLI was read, not run. Worth someone running vapi mcp setup once against the released binary to confirm the paths before merge.

🤖 Generated with Claude Code

Both MCP pages documented a different package, different config paths, and
different JSON shapes than the tools actually use.

fern/cli/mcp-integration.mdx

`vapi mcp setup` configures @vapi-ai/mcp-docs-server (documentation lookup),
not @vapi-ai/mcp-server (the action server). Verified at VapiAI/cli
cmd/mcp.go:293 and :352-355. Corrections against that source:

- Package name throughout.
- Config paths. The page claimed project-local `.cursor/mcp.json` and
  `.windsurf/mcp.json`, and "workspace settings" for VS Code. The CLI writes
  ~/.cursor/mcp.json, ~/.codeium/windsurf/mcp_config.json, and
  ~/.vscode/mcp.json. Because these are in $HOME the integration is global, so
  the advice to run setup per project and commit the files to your repo was
  wrong in both directions.
- JSON shape. Cursor and Windsurf use the `mcpServers` key, not `servers`.
  VS Code uses `servers` plus `"type": "stdio"`. The server entry is named
  `vapi`, not `vapi-docs`, and args include `-y`.
- Removed `vapi mcp remove`. No such subcommand exists; only `setup` and
  `status` are registered.
- Removed the global install/update instructions. The command runs through
  `npx -y`, so there is nothing installed globally to update, and
  `npm list -g` will never show it.
- Removed fabricated `vapi mcp status` output, including a version line the
  command does not print.
- Removed "eliminating AI hallucinations" and "API hallucinations are
  eliminated", and the invented IDE-generated code samples presented as what
  the assistant will produce.
- Added a note distinguishing this documentation server from the action server.

fern/sdk/mcp-server.mdx

- The `vapi mcp setup` tip sent readers to a different server. Replaced with a
  note explaining the distinction.
- Removed "connect to the local server endpoint (default:
  http://localhost:3000)". @vapi-ai/mcp-server communicates over stdio.
- Marked the SSE transport and tabs deprecated in favor of streamable HTTP.
- Tool catalog listed 10 tools; the server registers 13. Added
  update_assistant, create_tool, and update_tool, and noted that
  list_assistants returns at most 10 results.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@lightsage-app

lightsage-app Bot commented Sep 18, 2026

Copy link
Copy Markdown

Lightsage docs evals

Result: passed
Staging docs: https://vapi-preview-01a0b355-48bb-73fc-926a-c27ff4f2ee8d.docs.buildwithfern.com
Commit: bb6313a

Average score: 100/100
Passed: 2/2

Eval ID Status Score Model Tools Docs 404
08e24c18-82a0-45de-abdc-d237bd12bc0f Pass 100 codex/gpt-5.4 30 4
08e24c18-82a0-45de-abdc-d237bd12bc0f Pass 100 claude-code/global.anthropic.claude... 23 1

@github-actions

Copy link
Copy Markdown
Contributor

@chris-garber-vapi
chris-garber-vapi marked this pull request as draft September 18, 2026 20:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant