Client App Integrations
The Model Context Protocol (MCP) is designed to be client-agnostic. Any MCP-compatible application can host your C++ server as long as they share a transport layer. This guide shows you how to connect your server to various clients and how to validate that it’s working correctly.
Validating Your Server
Before connecting to a complex desktop application, you should validate your server using simpler tools.
Using the MCP Inspector
The mcp-inspector is the official CLI tool for testing and debugging MCP
servers. It provides a web-based UI to interact with your tools, resources,
and prompts.
If you have Node.js installed, you can run it without installation:
npx @modelcontextprotocol/inspector /path/to/your/build/examples/servers/stdio/example-server-stdio
The inspector will launch a local web server (usually at http://localhost:3000)
where you can see your server’s capabilities and trigger its tools.
Using our Interactive Client
The SDK includes a built-in client template that you can use for quick validation directly from your terminal:
./build/example-interactive-client /path/to/your/build/examples/servers/stdio/example-server-stdio
This client will connect to your server, list its tools, and attempt to call the first available tool, providing an end-to-end “proof of life” for your transport and schema logic.
Desktop Client Integrations
Most desktop applications (like IDEs and AI interfaces) use the stdio transport to launch and communicate with MCP servers.
Claude Desktop
To use your C++ MCP server with Claude Desktop, add it to your
claude_desktop_config.json file.
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"my-cpp-server": {
"command": "/path/to/your/repo/build/examples/servers/stdio/example-server-stdio",
"args": []
}
}
}
IDE Plugins (e.g., Cursor, VSCode)
For IDEs that support MCP (like Cursor or VSCode via extensions), you can typically add a new “MCP Server” in the settings, specifying:
Type: command or stdio
Command: Absolute path to your compiled binary.
Args: Any necessary CLI flags (e.g., –llama-port=8080).
Troubleshooting Integrations
Absolute Paths: Most host applications require absolute paths to your server executable.
Environment Variables: If your server depends on specific environment variables (like PATH or API keys), ensure the host application’s configuration includes them.
Logs: If your server fails to start, check the host application’s logs for stderr output from your subprocess.