Skip to main content
Glama
Mugen-Builders

Cartesi Knowledge MCP Server

Cartesi Knowledge MCP Server

Production-minded Model Context Protocol server that exposes curated Cartesi developer resources — including repositories, documentation, articles, and skills — from PostgreSQL to AI agents over streamable HTTP.

Current capabilities

  • FastMCP (mcp[cli] 1.26.x) with streamable_http_app() — FastMCP's Starlette app used directly in production so session lifespan runs correctly (see create_app() in src/main.py).

  • Async SQLAlchemy + asyncpg for read-only access to the knowledge database.

  • Layered layout: config and logging (src/core/), DB session and models (src/db/), repositories, domain service (src/domain/resource_service.py), schemas, formatters, and server modules under src/server/.

  • Transport security: DNS rebinding protection and configurable allowed_hosts / allowed_origins in src/server/server.py.

  • Plain HTTP health: GET /health returns {"status":"ok"} alongside the MCP route.

Content delivery model

Resource type

Body delivery

Agent action needed

Skills

Inline — body stored in DB

Call get_skill(id) — no URL fetch

Articles

Inline — body stored in DB

Call get_article_content(id) — no URL fetch

Documentation

Metadata + external links

Fetch canonical_url / route url separately

Repositories

Metadata + external links

Fetch canonical_url separately

Workflow tools (prepare_cartesi_*, send_input_to_application, prepare_*_deposit_instructions, get_cartesi_app_logic_guidance) return instructions and command templates for the user's machine. They do not run the Cartesi CLI or cast from this server.

1. summarize_knowledge_base          → orientation (counts include skills + articles)
2. list_skills                       → check for a matching skill FIRST (body is inline)
   └─ get_skill(resource_id)         → read body directly — no URL fetch needed; stop here if sufficient
3. [No skill covers task] get_knowledge_taxonomy → discover valid tag/source filter values
4. search_knowledge_resources        → find repos/docs/articles by query+tag+source+kind
   └─ get_article_content(id)        → article bodies are inline (no URL fetch needed)
5. fetch_resource_content(url)       → for documentation/repository pages needing full body

Why skills first? Skills are purpose-built for agent consumption, their body is stored inline in the DB (zero external fetch latency), and they are curated validated procedures — more reliable than interpreting raw docs.

Requirements

  • Python ≥ 3.11 (see pyproject.toml; the included Dockerfile uses Python 3.12).

  • PostgreSQL database with the schema managed by the mcp-admin-server (includes resources, articles, skills, repositories, doc_routes, tags, sources tables).

Environment variables

Copy .env.example to .env and adjust. Defaults and field names are in src/core/config.py (notably DATABASE_URL, APP_HOST, APP_PORT, MCP_BASE_URL, pagination limits, connection pool settings). For PostgreSQL URLs, postgres://... is normalized to postgresql+asyncpg://..., and sslmode is translated to asyncpg-compatible ssl.

Install

Using uv (recommended):

uv sync

Using pip:

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Run

python -m src.main
uv run python -m src.main
uv run uvicorn src.main:create_app --factory --host 0.0.0.0 --port 8000

The MCP endpoint is streamable HTTP at:

  • http://<host>:<port>/mcp (default: http://0.0.0.0:8000/mcp)

Docker

Multi-stage Dockerfile — installs deps with uv, runs python -m src.main. Set DATABASE_URL and other env vars at runtime (via -e or your orchestrator).

Suggested client test

http://localhost:8000/mcp

MCP resources

URI

Purpose

cartesi://health

Server name, environment, MCP_BASE_URL, read-only flag, capabilities, content policy

cartesi://resources

Catalog: index of resource URIs, tool names, prompts, tool groups, and suggested agent flow

cartesi://resources/{resource_id}

Normalized resource metadata

cartesi://docs/{resource_id}

Documentation resource view

cartesi://docs/routes/{route_id}

Single doc route with parent context

cartesi://repositories/{resource_id}

Repository sync / freshness metadata

cartesi://collections/tag/{tag}

Resources grouped by tag

cartesi://collections/source/{source}

Resources grouped by source

cartesi://skills

List all available skills for discovery

cartesi://skills/{resource_id}

Skill body inline (no external fetch required)

cartesi://articles/{resource_id}

Article body inline (no external fetch required)


MCP tools

Orientation (call first)

  • summarize_knowledge_base — coverage counts (including skills/articles), orientation guide. Call this first.

  • get_knowledge_taxonomy — canonical tag and source titles for filtering

Skills (check before knowledge search — body is inline)

  • list_skills — list all skills with title, description, tags

  • get_skillfull skill body returned inline, no URL fetch required

Articles (body inline)

  • list_articles — list articles with optional tag/source filter

  • get_article_contentfull article body returned inline, no URL fetch required

  • search_knowledge_resources — search by query, tag, source, kind (repository, documentation, article, skill)

  • search_documentation_routes — search routes across resources

  • build_debugging_context — issue-focused bundle of resources and routes

Detail fetch

  • get_resource_detail — one resource by ID, with optional routes

  • list_resource_doc_routes — routes for a documentation resource

  • list_doc_route_sections — distinct section names for a documentation resource

  • list_resources_for_tag / list_resources_for_source

  • get_repository_sync_status

Content proxy

  • fetch_resource_content — fetch and return external URL body (docs.cartesi.io, github.com, etc.)

Cartesi app lifecycle (host-side instructions only)

  • prepare_cartesi_create_command — stable v1.5.x vs alpha v2.0 create guidance

  • prepare_cartesi_build_command

  • prepare_cartesi_run_command

  • get_cartesi_app_logic_guidance — address-book, portals, vouchers, notices, reports

Interaction & deposits (host-side instructions only)

  • send_input_to_application — InputBox + cast templates

  • prepare_erc20_deposit_instructions — ERC20Portal flow

  • prepare_erc721_deposit_instructions — ERC721Portal flow

  • prepare_erc1155_deposit_instructions — ERC1155SinglePortal flow

  • prepare_eth_deposit_instructions — EtherPortal flow

  • prepare_erc1155_batch_deposit_instructions — ERC1155BatchPortal flow

  • prepare_voucher_execution_instructions — voucher execution with GraphQL proof query


MCP prompts

  • debug_cartesi_issue — structured debugging using curated knowledge

  • find_cartesi_docs — doc route discovery for a topic

  • explain_repository_context — repository resource + status summary


Developer notes

  • Agent-facing documentation, implementation tracker, and optimization plan live in .agents/ (git-ignored, local only). Start with .agents/INDEX.md.

  • Before adding a new tool or resource, read .agents/MCP_CATALOG_MAINTENANCE.md — catalog entries must be kept in sync manually.

  • The kind field on resources: "repository", "documentation", "article", "skill", "resource".

F
license - not found
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mugen-Builders/MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server