Setup
Configure your MCP client to connect to the server
Remote (recommended)
The server runs as a single process (daysurface-serve) that exposes both the
HTTP API and the MCP streamable-HTTP endpoint at /mcp. The hosted deployment
lives at:
https://mcp.daysurface.com/mcpThe connect box on the product site picks the right flow for your client:
| Client | How it connects |
|---|---|
| Claude, Cursor, VS Code, Goose | One-click install link |
| Claude Code | A claude mcp add command to run in your terminal |
| Cline, Zed, Windsurf, anything else | A setup prompt to paste into the agent |
| ChatGPT | Paste the URL in connector settings (Developer mode must be on first) |
Clients that read a config file (Claude Cowork/Desktop 0.7+, Cursor, etc.) can also be pointed at the endpoint directly:
{
"mcpServers": {
"daysurface": {
"url": "https://mcp.daysurface.com/mcp",
"headers": { "X-API-KEY": "sk_..." }
}
}
}Self-hosting? Swap in your own deployment's /mcp URL - everything below works
the same.
Authentication accepts an OAuth 2.1 access token (see OAuth 2.1
for zero-provisioning connections from Claude and other clients), a Bearer JWT
(WorkOS), or an API key via X-API-KEY, same as the REST API. See
Deployment for hosting.
Local (stdio, legacy)
The stdio transport is supported for local Claude Desktop / dev use only.
Replace /path/to/DaySurface with the actual path to your cloned repo.
Add to your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"daysurface": {
"command": "uv",
"args": ["--directory", "/path/to/DaySurface", "run", "daysurface-mcp"],
"env": {}
}
}
}Restart Claude Desktop after saving the config.
Add to your project's .mcp.json:
{
"mcpServers": {
"daysurface": {
"command": "uv",
"args": ["--directory", "/path/to/DaySurface", "run", "daysurface-mcp"],
"env": {}
}
}
}Open Cursor Settings > MCP and add a new server with:
- Name:
daysurface - Type:
command - Command:
uv --directory /path/to/DaySurface run daysurface-mcp
Or add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"daysurface": {
"command": "uv",
"args": ["--directory", "/path/to/DaySurface", "run", "daysurface-mcp"],
"env": {}
}
}
}Add to your VS Code settings (settings.json) or workspace settings:
{
"mcp": {
"servers": {
"daysurface": {
"command": "uv",
"args": ["--directory", "/path/to/DaySurface", "run", "daysurface-mcp"],
"env": {}
}
}
}
}Or add to .vscode/mcp.json in your project root:
{
"servers": {
"daysurface": {
"command": "uv",
"args": ["--directory", "/path/to/DaySurface", "run", "daysurface-mcp"],
"env": {}
}
}
}Add to your project's codex.json or pass via CLI:
codex --mcp-config '{"daysurface": {"command": "uv", "args": ["--directory", "/path/to/DaySurface", "run", "daysurface-mcp"]}}'Or create a mcp.json in your project root:
{
"mcpServers": {
"daysurface": {
"command": "uv",
"args": ["--directory", "/path/to/DaySurface", "run", "daysurface-mcp"],
"env": {}
}
}
}Add to your Gemini CLI settings file (~/.gemini/settings.json):
{
"mcpServers": {
"daysurface": {
"command": "uv",
"args": ["--directory", "/path/to/DaySurface", "run", "daysurface-mcp"],
"env": {}
}
}
}Add to your OpenCode config (opencode.json in your project root):
{
"mcp": {
"daysurface": {
"command": "uv",
"args": ["--directory", "/path/to/DaySurface", "run", "daysurface-mcp"]
}
}
}Add to your OpenClaw MCP config:
{
"mcpServers": {
"daysurface": {
"command": "uv",
"args": ["--directory", "/path/to/DaySurface", "run", "daysurface-mcp"],
"env": {}
}
}
}Other MCP Clients
Any MCP-compatible client can connect by spawning uv --directory /path/to/DaySurface run daysurface-mcp as a subprocess using stdio transport.