Koskamo

Symbola MCP

An MCP server that allows AI assistants to search the Symbola registry for software blueprints, read their technical decisions, and provide step-by-step instructions for building them. It supports various coding agents and chat assistants without requiring authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Symbola MCP logo, by Spiking LabsCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Spiking Labs
MCP endpoint (Streamable HTTP)
https://symbola.sh/mcp
Vendor documentation

What you can do with it

  • Find a Blueprint for a specific software library
  • Read decisions made by a specific Blueprint
  • Get steps to build a software project
  • Access public registry data for AI agents

Source and maintenance

Community listingRegistry 0.1.0

Protocol and capabilities

Server
symbola 0.1.0
MCP protocol
2025-06-18
Tools
5 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
1 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Symbola (https://symbola.sh): software, shipped as blueprints. Pick a Symbola Blueprint and your coding agent builds the app, in any language, the way you want it. A Blueprint (called a pack in the tools below) describes one app as its decisions: a product description (PRODUCT.md), a brief, assumptions, the decisions a builder could get wrong, and components with examples and checks. The user can change any decision before the build, and the agent builds their version. Use search_packs to find Blueprints, get_pack for an overview, read_decisions and read_pack_file to answer questions about what a Blueprint decides, and get_build_steps when the user wants it built. Building needs a shell (Claude Code or another coding agent); in a chat without one, explain the steps or give the user the one-line request to paste into their coding agent.

Tools

5 advertised

search_packs — Search packs
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search the Symbola registry for packs: software a coding agent can build from its decisions. Matches words against each pack's name, summary, id and category. With no query, lists every pack.

search_packs input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 50,
      "minimum": 1,
      "description": "Most packs to return (default 10)."
    },
    "query": {
      "type": "string",
      "description": "Words to look for, e.g. \"paper library\" or \"encrypted meetings\"."
    },
    "category": {
      "type": "string",
      "description": "Only packs in this category: research, finance, text, data, places, time, dev, productivity or other."
    }
  }
}
search_packs annotations
{
  "title": "Search packs",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_pack — Get a pack
Advertised by the server during the last successful anonymous check.
Advertised read-only

Overview of one pack: what it builds, its version, how many decisions it holds, its components, its page and download link, and the files it holds.

get_pack input schema
{
  "type": "object",
  "required": [
    "pack"
  ],
  "properties": {
    "pack": {
      "type": "string",
      "description": "The pack id, owner/name, e.g. kausalflow/lightkone. A symbola.sh pack link works too."
    }
  }
}
get_pack annotations
{
  "title": "Get a pack",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
read_decisions — Read decisions
Advertised by the server during the last successful anonymous check.
Advertised read-only

The decisions a pack makes: each one a rule a builder could get wrong, with its status (decided, default or open). Narrow them to one component or to decisions mentioning some words.

read_decisions input schema
{
  "type": "object",
  "required": [
    "pack"
  ],
  "properties": {
    "pack": {
      "type": "string",
      "description": "The pack id, owner/name, e.g. kausalflow/lightkone. A symbola.sh pack link works too."
    },
    "query": {
      "type": "string",
      "description": "Only decisions whose id or text contains all of these words."
    },
    "status": {
      "enum": [
        "decided",
        "default",
        "open"
      ],
      "type": "string",
      "description": "Only decisions with this status."
    },
    "component": {
      "type": "string",
      "description": "Only decisions checked in this component, e.g. search-query."
    }
  }
}
read_decisions annotations
{
  "title": "Read decisions",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
read_pack_file — Read a pack file
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read one file of a pack, e.g. PRODUCT.md (the whole product), AGENTS.md (how to build it), BRIEF.md, obligations.toml, an assumption, or a component's symbolon.toml or examples.jsonl. "pack.md" is the whole pack as one Markdown page.

read_pack_file input schema
{
  "type": "object",
  "required": [
    "pack",
    "path"
  ],
  "properties": {
    "pack": {
      "type": "string",
      "description": "The pack id, owner/name, e.g. kausalflow/lightkone. A symbola.sh pack link works too."
    },
    "path": {
      "type": "string",
      "description": "The file's path inside the pack, e.g. PRODUCT.md."
    }
  }
}
read_pack_file annotations
{
  "title": "Read a pack file",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_build_steps — Get build steps
Advertised by the server during the last successful anonymous check.
Advertised read-only

How to build a pack: the steps a coding agent with a shell follows (install the symbola CLI, pull the pack, build each component and run its checks), and a one-line request the user can paste into Claude Code or another coding agent.

get_build_steps input schema
{
  "type": "object",
  "required": [
    "pack"
  ],
  "properties": {
    "pack": {
      "type": "string",
      "description": "The pack id, owner/name, e.g. kausalflow/lightkone. A symbola.sh pack link works too."
    },
    "language": {
      "type": "string",
      "description": "The language or stack to build in, e.g. Python, Go, TypeScript."
    }
  }
}
get_build_steps annotations
{
  "title": "Get build steps",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

1 advertised

build — Build a pack

Advertised by the server during the last successful anonymous check.

Build a Symbola pack in your language with your coding agent.

pack
The pack id, e.g. kausalflow/lightkone. (required)
language
The language or stack, e.g. Python.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
525 ms
95th percentile latency
525 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 525 ms · metadata changed · 5 tool(s), 1 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http symbola-mcp https://symbola.sh/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add symbola-mcp --url https://symbola.sh/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable symbola-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "symbola-mcp": {
      "url": "https://symbola.sh/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "symbola-mcp": {
      "type": "streamableHttp",
      "url": "https://symbola.sh/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start symbola-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "symbola-mcp": {
      "type": "http",
      "url": "https://symbola.sh/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http symbola-mcp https://symbola.sh/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "symbola-mcp": {
      "url": "https://symbola.sh/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "symbola-mcp": {
      "serverUrl": "https://symbola.sh/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Symbola MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.