Skip to main content
Glama

solodot-mcp

connect the dots that scale your solo business.

mcp server for solodot. route the active founder painpoint, generate one execution asset, and keep the founder in control through approve, revise, or reject.

features

  • six execution packs: bottleneck, customers, founder functions, learning, trust, and agent workflows.

  • five tools: route, generate, review, inspect, and export.

  • local stdio for codex and claude desktop.

  • authenticated streamable http for remote agents.

  • anthropic and vertex model providers.

  • in-memory local runs or durable supabase runs.

  • docker and apple container support.

  • no silent email, slack, crm, publishing, invoice, or external actions.

Related MCP server: speed-to-lead-agent

requirements

  • node.js 20+

  • an anthropic or vertex api key

  • supabase for remote http mode

  • codex, claude, or another mcp client

apple container requires apple silicon and macos 26. install it from the official releases, then start the service with container system start.

install

cd /Users/0x79de/dev/solodot-mcp
npm install
cp .env.example .env
npm run build

set at least one provider in .env:

SOLODOT_DEFAULT_PROVIDER=anthropic
ANTHROPIC_API_KEY=...

use SOLODOT_DEFAULT_PROVIDER=vertex with VERTEX_API_KEY for vertex.

setup

codex

add a local stdio server to ~/.codex/config.toml:

[mcp_servers.solodot]
command = "node"
args = ["/Users/0x79de/dev/solodot-mcp/dist/stdio.js"]
env = { SOLODOT_DEFAULT_PROVIDER = "anthropic", ANTHROPIC_API_KEY = "your-key" }

claude desktop

add this to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "solodot": {
      "command": "node",
      "args": ["/Users/0x79de/dev/solodot-mcp/dist/stdio.js"],
      "env": {
        "SOLODOT_DEFAULT_PROVIDER": "anthropic",
        "ANTHROPIC_API_KEY": "your-key"
      }
    }
  }
}

restart the client after changing its config. ready-to-copy examples live in examples/.

usage

after setup, ask your agent:

  • "route the biggest painpoint in my solo business."

  • "turn this route into the execution asset i should use this week."

  • "revise the asset for a narrower b2b saas buyer."

  • "approve it and export the run as markdown."

the normal flow is:

route_painpoint
  -> generate_execution_asset
  -> review_execution_asset
  -> export_solodot_run

approval records founder intent. it never executes the asset outside solodot.

remote http

remote mode serves POST /mcp and GET /health on port 8787.

configure:

SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SECRET_KEY=...
SOLODOT_MCP_API_KEYS=long-random-founder-token
ANTHROPIC_API_KEY=...

run:

npm run build
npm run start:http

remote codex config:

[mcp_servers.solodot]
url = "https://mcp.example.com/mcp"
bearer_token_env_var = "SOLODOT_MCP_TOKEN"

use the same public https endpoint and bearer token for a claude custom connector or another remote mcp host.

apple container

solodot uses the same oci image for apple container and docker.

container system start
npm run container:build
npm run container:run

container:run reads .env, starts solodot-mcp with an init process, and publishes only 127.0.0.1:8787.

npm run container:health
npm run container:logs
npm run container:stop

override defaults when needed:

SOLODOT_MCP_ENV_FILE=/absolute/path/to/solodot.env \
SOLODOT_MCP_PORT=9000 \
npm run container:run

apple container runs linux containers as lightweight virtual machines on apple silicon. the image remains portable to any oci-compatible runtime.

docker

build from the standalone mcp repository:

cd /Users/0x79de/dev/solodot-mcp
docker build -t solodot-mcp:local .
docker run --init --rm --env-file .env -p 127.0.0.1:8787:8787 solodot-mcp:local

tools

  • route_painpoint: choose exactly one execution pack.

  • generate_execution_asset: create the full asset for that fixed route.

  • review_execution_asset: approve, revise, or reject.

  • get_solodot_run: inspect diagnosis, assets, and approvals.

  • export_solodot_run: return an approved asset as markdown or json.

resources are available at solodot://execution-packs, solodot://approval-boundaries, and solodot://product-context.

slack

an mcp-capable agent can call solodot while its conversation lives in slack.

this is not a native slack bot. it does not read channels, receive slash commands, or post messages.

development

npm run typecheck
npm test
npm run build

inspect the local server:

npx @modelcontextprotocol/inspector node dist/stdio.js

Available Tools

5 tools
export_solodot_runExport an approved Solodot runA
Read-onlyIdempotent

Return an approved execution asset as Markdown or JSON. The tool returns content only; it does not write files, post messages, or publish.

Inputs: runId (required), format (required).

generate_execution_assetGenerate the routed execution assetA

Generate one concrete, preview-only execution asset for the pack already selected by route_painpoint. The routed pack cannot be changed by this tool.

Inputs: runId (required), corrections.

get_solodot_runInspect a Solodot runA
Read-onlyIdempotent

Return the authenticated founder's diagnosis, generated assets, approval history, and latest recommended step.

Inputs: runId (required).

review_execution_assetReview an execution assetA

Record approve, revise, or reject for a generated Solodot asset. Approval records acceptance only and never executes the asset externally.

Inputs: runId (required), assetId (required), decision (required), reason.

route_painpointRoute a founder painpointB

Diagnose the active solo-founder painpoint, select exactly one Solodot execution pack, and return a lightweight action preview. This does not perform external actions.

Inputs: offer (required), stage (required), bottleneck (required), founderType (required), +7 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: route_painpoint diagnoses and selects a pack, generate_execution_asset creates a preview asset, review_execution_asset records approval/revision/rejection, export_solodot_run returns the approved asset, and get_solodot_run retrieves the current state. No two tools overlap in functionality.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using snake_case: route_painpoint, generate_execution_asset, review_execution_asset, export_solodot_run, get_solodot_run. The verbs are distinct and the nouns are domain-specific, making the pattern predictable and clear.

    Tool Count5/5

    With 5 tools, the server is well-scoped for the solo founder painpoint workflow. Each tool represents a key step in the process (diagnosis, generation, review, export, status retrieval) without unnecessary duplication or omission.

    Completeness4/5

    The tool set covers the core lifecycle: route_painpoint starts, generate_execution_asset creates, review_execution_asset evaluates, export_solodot_run delivers, and get_solodot_run provides status. A minor gap is the lack of a tool to update or delete assets or runs, but the workflow is essentially complete for a linear process.

    Related MCP Connectors

    Related MCP Servers