Connect Claude Desktop, Claude Code, Cursor, and other MCP clients to your FrontMCP server
Configure MCP clients to connect to your FrontMCP server using stdio, HTTP, or Unix socket transport. This guide covers every supported connection mode and client.
Stdio is the most common transport for MCP servers. The client spawns your server as a child process and communicates via stdin/stdout using JSON-RPC 2.0. No network setup required.
In stdio mode, stdout is reserved for MCP protocol messages. All logs are automatically redirected to stderr and ~/.frontmcp/logs/. You don’t need to configure anything — FrontMCP handles this automatically when --stdio is passed.
When building a FrontMCP server with an AI coding agent (Claude Code, Cursor, Windsurf, etc.), use HTTP transport with frontmcp dev for the best experience. The dev server watches your source files and auto-reloads on every change — your agent edits code, the server restarts instantly, and the MCP client reconnects automatically.
This is the recommended workflow for “vibe coding” with FrontMCP. The agent has live access to the tools it’s building — it can edit code, test the result immediately, and iterate without any manual restart.
Stdout is 100% JSON-RPC frames. Every diagnostic goes to ./.frontmcp/dev.log (override with --log-file <path>).
The session id survives reload. The bridge pins a uuid via FRONTMCP_DEV_FORCE_SESSION_ID; the child re-uses it on every restart so in-flight session state (auth, subscriptions) carries over.
Buffered RPCs during reload drain in FIFO order when the new child reports ready (sentinel __FRONTMCP_BOOTSTRAP_COMPLETE__ on stderr, or TCP probe in HTTP mode).
Structured errors instead of hangs. When the reload exceeds --reload-deadline-ms (default 30 000) or the buffer exceeds --buffer-size (default 8), the bridge synthesises dev_server_unreachable / dev_buffer_full / dev_reload_deadline (codes -32099 / -32098 / -32097) so the client spinner clears immediately.
Flags:
Flag
Default
Description
--stdio
off
Enable bridge mode.
--serve
off
Use stdio-over-pipe to the child (skips HTTP loopback).
Agent + Inspector + you can all connect simultaneously
One client per process
Debugging
Logs visible in terminal, Inspector UI available
Logs mixed with protocol
Persistence
Server stays running across edits
New process per connection
Run npm run inspect in a separate terminal to launch the MCP Inspector alongside your dev server. This gives you a visual UI to test tools while your agent codes.
Connect to a FrontMCP server running as an HTTP server. Use this for remote deployments, cloud servers, or when you need the server to persist independently.
One-shot install for Claude Code (<bin> install -p claude)
Every server built with frontmcp build --target cli inherits an
install subcommand that emits a full Claude Code plugin — MCP
server entry, slash commands, and @Skill-decorated skills — in one
step. End users don’t need to hand-edit .mcp.json or place SKILL.md
files manually:
# As an end user, after installing your server (e.g. via npm install -g):my-server install -p claude # writes ./.claude/plugins/my-server/my-server install -p claude --scope user # writes ~/.claude/plugins/my-server/my-server install -p claude -p codex # also writes the Codex mcp_servers entrymy-server install --status # report what's installed per providermy-server uninstall -p claude # remove the Claude plugin tree
Selective installs are supported via --no-skills, --no-commands,
and --only-mcp (just register the MCP server, skip the plugin
folder). --dry-run prints the file plan without writing.Compared to the manual .mcp.json flow above, the plugin install
also:
composes proper SKILL.md frontmatter from each @Skill’s decorator
metadata (name, description, tags, license) so Claude Code’s
filesystem loader can index the skill;
writes a .claude-plugin/plugin.json manifest that registers the
MCP server, slash commands, and skill list in one file;
tracks framework-managed files via the manifest’s managedFiles
array so re-running install is idempotent and user-added files
are never deleted on uninstall.
For the dev-tool equivalent (frontmcp plugin install --claude from a
project root) and the full flag reference, see the
CLI Reference.