Free tool
Build a working MCP config for Claude Desktop, Claude Code, Cursor or VS Code, or paste the one you have and find out what is wrong with it.
Everything runs in your browser. Nothing you type or paste is sent to any server or saved.
Already have other servers? Add only the new entries inside your existing "mcpServers" object, keep the rest, then fully quit and reopen Claude Desktop.
Commands write the config for you. Run claude mcp list afterwards to see each server's status.
Use ~/.cursor/mcp.json for every project, or .cursor/mcp.json in one project.
VS Code reads this format from .vscode/mcp.json in your workspace or from your user profile.
The FlowState entry uses the same command and settings that FlowState's setup script writes (from its AGENTS.md). Put in your real folder and database paths, or let the setup guide do it for you.
Paste a config file. The check finds JSON mistakes with the line and column, and shape mistakes for the app you pick. Replace real API keys and tokens with placeholders first: the check runs only on this page, but there is no reason to paste a secret.
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonclaude mcp add. User and local scope are stored in ~/.claude.json; project scope in .mcp.json in the project folder. Source~/.cursor/mcp.json in your home folder. One project: .cursor/mcp.json. Source.vscode/mcp.json, or mcp.json in your user profile. Top-level key servers, and each server has a type. The MCP: Add Server command can write it for you. SourceWindsurf is not covered here yet: its MCP docs now point to a different product, so we could not confirm the current file.
One server (Claude Desktop, Cursor, or a Claude Code .mcp.json):
{
"mcpServers": {
"flowstate": {
"command": "/path/to/FlowState/.venv/bin/python",
"args": ["-m", "flowstate"],
"env": {
"FLOWSTATE_DB": "/path/to/flowstate.db",
"PYTHONPATH": "/path/to/FlowState/mcp-server"
}
}
}
}
Several servers: each one is another named entry inside the same object, separated by a comma.
{
"mcpServers": {
"flowstate": {
"command": "/path/to/FlowState/.venv/bin/python",
"args": ["-m", "flowstate"],
"env": {
"FLOWSTATE_DB": "/path/to/flowstate.db",
"PYTHONPATH": "/path/to/FlowState/mcp-server"
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you/Desktop"]
}
}
}
A server that needs an API key: the key goes in env. Use a placeholder when you share or paste a config.
{
"mcpServers": {
"example": {
"command": "npx",
"args": ["-y", "@example/mcp-server"],
"env": {
"EXAMPLE_API_KEY": "YOUR_KEY_HERE"
}
}
}
}
The same on Windows: double every backslash.
{
"mcpServers": {
"flowstate": {
"command": "C:\\path\\to\\FlowState\\.venv\\Scripts\\python.exe",
"args": ["-m", "flowstate"],
"env": {
"FLOWSTATE_DB": "C:\\path\\to\\flowstate.db",
"PYTHONPATH": "C:\\path\\to\\FlowState\\mcp-server"
}
}
}
}
VS Code (.vscode/mcp.json): servers, and a type on every server.
{
"servers": {
"flowstate": {
"type": "stdio",
"command": "/path/to/FlowState/.venv/bin/python",
"args": ["-m", "flowstate"],
"env": {
"FLOWSTATE_DB": "/path/to/flowstate.db",
"PYTHONPATH": "/path/to/FlowState/mcp-server"
}
},
"remote-example": {
"type": "http",
"url": "https://example.com/mcp"
}
}
}
Claude Code, from a terminal:
claude mcp add --transport stdio --scope user flowstate -e FLOWSTATE_DB=/path/to/flowstate.db -e PYTHONPATH=/path/to/FlowState/mcp-server -- /path/to/FlowState/.venv/bin/python -m flowstate
claude mcp add --transport http --scope user remote-example https://example.com/mcp
claude mcp list
mcpServers for Claude Desktop, Claude Code and Cursor; servers for VS Code.command and in file arguments, not ~ or relative paths.~/Library/Logs/Claude on macOS and %APPDATA%\Claude\logs on Windows. Cursor shows them in the Output panel under MCP Logs. In Claude Code, run claude mcp list or /mcp.A local server is a program the app starts on your computer from the command in the config. FlowState runs this way, free, and your data stays in one file on your computer.
A remote server is a URL. ChatGPT and Claude in the browser can only use remote servers, because they can't start programs on your computer. To reach your own FlowState from them, FlowState Relay (open in beta) gives your computer a private address without setting up a tunnel, and your data stays on your computer. If you'd rather not run it at home, Hosted keeps it on our server. Both are optional; local FlowState is free.
FlowState is a free, open-source MCP memory server. It gives Claude, Cursor, VS Code and your other AI apps the same memory of your projects.