Model Context Protocol (MCP) Server for the synth-mcp API.
Important
This MCP Server is not yet ready for production use. To complete setup please follow the steps outlined in your workspace. Delete this notice before publishing to a package manager.
Synth: Synth API offers programmatic access to probabilistic price forecasts for Equities, Commodities and Cryptocurrencies.
Tip
To finish publishing your MCP Server to npm and others you must run your first generation action.
Claude Desktop
Install the MCP server as a Desktop Extension using the pre-built mcp-server.mcpb file:
Simply drag and drop the mcp-server.mcpb file onto Claude Desktop to install the extension.
The MCP bundle package includes the MCP server and all necessary configuration. Once installed, the server will be available without additional setup.
[!NOTE] MCP bundles provide a streamlined way to package and distribute MCP servers. Learn more about Desktop Extensions.
Cursor
Or manually:
- Open Cursor Settings
- Select Tools and Integrations
- Select New MCP Server
- If the configuration file is empty paste the following JSON into the MCP Server Configuration:
{
"command": "npx",
"args": [
"synth-mcp",
"start",
"--server-url",
""
]
}Claude Code CLI
claude mcp add Synth -- npx -y synth-mcp start --server-url Gemini
gemini mcp add Synth -- npx -y synth-mcp start --server-url Windsurf
Refer to Official Windsurf documentation for latest information
- Open Windsurf Settings
- Select Cascade on left side menu
- Click on
Manage MCPs. (To Manage MCPs you should be signed in with a Windsurf Account) - Click on
View raw configto open up the mcp configuration file. - If the configuration file is empty paste the full json
{
"command": "npx",
"args": [
"synth-mcp",
"start",
"--server-url",
""
]
}VS Code
Or manually:
Refer to Official VS Code documentation for latest information
- Open Command Palette
- Search and open
MCP: Open User Configuration. This should open mcp.json file - If the configuration file is empty paste the full json
{
"command": "npx",
"args": [
"synth-mcp",
"start",
"--server-url",
""
]
}Stdio installation via npm
To start the MCP server, run:npx synth-mcp start --server-url For a full list of server arguments, run:
npx synth-mcp --help
Run locally without a published npm package:
- Clone this repository
- Run
npm install - Run
npm run build - Run
node ./bin/mcp-server.js start --server-urlTo use this local version with Cursor, Claude or other MCP Clients, you'll need to add the following config:
{
"command": "node",
"args": [
"./bin/mcp-server.js",
"start",
"--server-url",
""
]
}Or to debug the MCP server locally, use the official MCP Inspector:
npx @modelcontextprotocol/inspector node ./bin/mcp-server.js start --server-url To publish your MCP server to the Anthropic MCP Registry, follow these steps based on the official publishing guide.
Add the mcpName field to your .speakeasy/gen.yaml file:
mcp-typescript:
mcpName: io.github.username/server-name # Use reverse-DNS format
# ... other configurationThe mcpName should follow the reverse-DNS format (e.g., io.github.username/server-name) to ensure uniqueness in the registry.
Run Speakeasy generation with the updated configuration. This will:
- Add the
mcpNamefield to yourpackage.json(required for npm package validation) - Generate a
server.jsonfile with registry metadata
The registry validates npm packages by checking that your published package includes the mcpName field:
npm publishThe registry will fetch your package from npm and verify that the mcpName in package.json matches your server name.
Install the mcp-publisher CLI tool:
macOS/Linux (Homebrew):
brew install mcp-publishermacOS/Linux/WSL (curl):
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher && sudo mv mcp-publisher /usr/local/bin/Windows PowerShell:
$arch = if ([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture -eq "Arm64") { "arm64" } else { "amd64" }
Invoke-WebRequest -Uri "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_windows_$arch.tar.gz" -OutFile "mcp-publisher.tar.gz"
tar xf mcp-publisher.tar.gz mcp-publisher.exe
rm mcp-publisher.tar.gz
# Move mcp-publisher.exe to a directory in your PATHAuthenticate based on your namespace:
For io.github.* namespaces (GitHub OAuth):
mcp-publisher login githubFor custom domains like com.yourcompany.* (DNS authentication):
# Generate keypair
openssl genpkey -algorithm Ed25519 -out key.pem
# Get public key for DNS record
echo "yourcompany.com. IN TXT \"v=MCPv1; k=ed25519; p=$(openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64)\""
# Add the TXT record to your DNS, then login
mcp-publisher login dns --domain yourcompany.com --private-key $(openssl pkey -in key.pem -noout -text | grep -A3 "priv:" | tail -n +2 | tr -d ' :\n')From your server directory, publish to the registry:
mcp-publisher publishYou'll see:
✓ Successfully published
Check that your server appears in the registry:
curl "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.username/server-name"For complete documentation including remote deployments, troubleshooting, and CI/CD automation, see the official publishing guide.
While we value contributions to this MCP Server, the code is generated programmatically. Any manual changes added to internal files will be overwritten on the next generation. We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.