Rosetta MCP Observable Platform
Rosetta MCP is a scaffold for an observable agent workspace control plane. It manages MCP servers, FastMCP gateway profiles, client syncs, packs, skills, prompts, resources, instruction files, env requirements, and infra.
What is included
- Rich/Typer CLI
- FastAPI control plane
- FastMCP gateway skeleton
- Generic graph runtime wrappers for LangGraph/LangChain runnables
- Live LangChain
create_agent(...)demos with Rosetta-injected MCP tools, prompts, resources, blobs, transforms, and local/LangSmith trace metadata - MCP discovery and inspection helpers
- Codex, Deep Agents, and LangChain render targets
- AGENTS.md, CLAUDE.md, SKILL.md, prompt rendering
- Postgres + Alembic scaffold
- Infra folder with Postgres, OTel Collector, Prometheus, Grafana, and Jaeger
- Unit, integration, API, and e2e test scaffolding
- Universal core components for IDs, results, context, security, and pagination
- Observability layer with structlog, Rich, OpenTelemetry, and Prometheus helpers
Install
From PyPI, the planned distribution name is rosetta-mcp-workspace:
python -m pip install "rosetta-mcp-workspace[all]"
The import package remains rosetta_mcp and the console command remains
rosetta.
For local development:
pdm install -G :all -d -G :all
That installs all project extras plus all dependency groups. For a smaller day-to-day install, select only the groups you need, for example:
pdm install -G dev -G api -G mcp -G langchain
Copy .env.example to .env for live LLM/MCP traces. Keep real
values local; .env is ignored by git.
Validate
Fast syntax and scaffold checks:
make verify-fast
Full validation after installing all groups:
make verify
CLI examples
pdm run rosetta init --scope project
pdm run rosetta add context7 -- npx -y @upstash/context7-mcp
pdm run rosetta list
pdm run rosetta obs config
pdm run rosetta platform doctor
pdm run rosetta verify quick
pdm run rosetta verify plan --no-pytest
pdm run rosetta prompt list
pdm run rosetta skill render mcp-inspection
pdm run rosetta instructions render --target agents
pdm run rosetta fastmcp sync --targets mcp-json,codex,langchain --mode gateway --write
Documentation
The docs build with Sphinx, MyST Markdown, autodoc, Napoleon, and type-hint rendering:
pdm install -G docs
pdm run sphinx-build -W -b html docs docs/_build/html
For local live preview:
pdm run sphinx-autobuild docs docs/_build/html
Read the Docs configuration lives in .readthedocs.yaml.
Graph runtime and live LLM traces
Rosetta includes a generic graph runtime kit under
rosetta_mcp.graph_runtime. It is not a broad agent layer. It is the
connective tissue between Rosetta registry/profile selections and graph-like
runtimes:
- wrap an existing compiled graph or runnable with
RosettaGraphHandle - compile one minimal LangChain v1
create_agent(...)graph with selected MCP tools and injected context - pass stable runnable config with
thread_id, tags, metadata, and trace flags - inject selected prompts/resources/blobs as system text, messages, state, or availability metadata
- preview FastMCP transform selections such as namespace, visibility, resources-as-tools, and prompts-as-tools
Preview the graph runtime configuration without calling an LLM:
pdm run rosetta graph config \
--name rosetta-agent \
--server-mode gateway_only \
--prompt runtime-contract \
--prompt-mode system \
--resource resource://rosetta/demo/integration-goal \
--resource-mode system \
--resources-as-tools \
--prompts-as-tools \
--trace
Call the real Rosetta gateway status MCP tool and print a local trace:
pdm run rosetta graph status --local-trace
Compile a live LangChain agent, let the LLM call the gateway status tool, and print the message/tool trace:
pdm run rosetta graph agent-smoke --local-trace
Run the richer proof that combines a real MCP tool, local tools, prompt injection, resource/blob injection, transform metadata, and trace output:
pdm run rosetta graph rich-demo --local-trace
Use --langsmith instead of --local-trace only when LANGSMITH_API_KEY is
set and you want hosted LangSmith traces. Use repeated --env-file PATH to
load additional env files before .env, .env.llm, and .env.mcp.
More detail: Graph Runtime.
Release Status
This repository is configured for standard Python builds and PyPI trusted
publishing. The original rosetta-mcp package name is already occupied on PyPI
by a different project, so this repository uses rosetta-mcp-workspace as its
publishable distribution name.
Release docs: Release And Publishing.
API and gateway listeners
The default root workflow avoids trapping you in foreground listeners.
make up,make obs,make down,make status, andmake logsoperate on detached infra services.- Foreground app listeners are explicit:
make serve-apiandmake serve-gateway. - Optional local background app listeners are explicit:
make api-bgandmake gateway-bg.
Run the API in the foreground:
make serve-api
# or
pdm run rosetta api serve
Run the gateway in the foreground:
make serve-gateway
Run local app listeners in the background with pid/log files:
make api-bg
make gateway-bg
make app-status
make app-logs
make app-stop
Smoke test API endpoints:
curl http://127.0.0.1:8765/health
curl http://127.0.0.1:8765/observability/config
curl http://127.0.0.1:8765/platform/info
curl http://127.0.0.1:8765/verification/plan
Makefile quickstart
The root Makefile is ergonomic. Infra implementation still lives in infra/Makefile, but common commands work from the repo root:
make setup # install deps, create infra env, run fast checks
make up # start Postgres in the background
make obs # start Postgres + OTel + Prometheus + Grafana + Jaeger in the background
make status # show compose service status
make logs # tail infra logs
make migrate # run Alembic migrations
make psql # open psql
make serve-api # run FastAPI in the foreground
make serve-gateway # run FastMCP gateway in the foreground
make api-bg # optional: run FastAPI in background, log to .rosetta/run/api.log
make gateway-bg # optional: run gateway in background, log to .rosetta/run/gateway.log
make app-stop # stop background local app listeners
make down # stop infra
Namespaced aliases still work:
make infra-up
make infra-migrate
make infra-psql
make db-up
make db-migrate
make obs-up
Open after make obs:
- Grafana: http://localhost:3000
- Prometheus: http://localhost:9090
- Jaeger: http://localhost:16686
Design
Rosetta treats tools, prompts, resources, skills, templates, env requirements, runtimes, and policies as first-class workspace objects. The gateway is the normal interface for clients, while direct config rendering remains a debugging fallback.
The graph runtime layer keeps that same shape for agents: selectors and injection settings are explicit, external graphs are wrapped rather than mutated, and Rosetta-created LangChain agents receive tools/context before compile.
Current root workflow fixes
Use the root Makefile for normal work:
make setup
make up
make migrate
make status
make serve-api
Notes:
make compileusespdm run python, so it works even when the shell has no globalpythonexecutable.make migratedelegates toinfra/Makefile, waits for Postgres, and passesROSETTA_MCP_SYNC_DATABASE_URLbased oninfra/.env.- Docker Postgres defaults to host port
55432; Alembic no longer trieslocalhost:5432unless you overridePOSTGRES_PORT. - Foreground listeners are explicit: use
make serve-apiormake serve-gateway.make apiandmake gatewayremain compatibility aliases. - If an old Docker volume has a different Postgres password, run
make reset.
Built-in catalog workflow
Rosetta includes a starter catalog of common MCP servers, packs, and profiles. Use these to bootstrap a workspace without hand-writing every config.
pdm run rosetta catalog servers
pdm run rosetta pack list
pdm run rosetta profile list
# Install recommended workspace servers into the project registry.
pdm run rosetta profile install workspace
# Or install a focused pack.
pdm run rosetta pack install mcp-dev-pack
# Render gateway configs after installing servers.
pdm run rosetta fastmcp sync --targets mcp-json,codex,langchain --mode gateway --write
Useful profiles:
workspace- filesystem, git, context7, sqlite, with safe defaults.research- web/paper/documentation discovery tools.data- database inspection with conservative mutation policy.mcp-dev- MCP authoring, inspection, and client config generation.deploy-readonly- explicit infrastructure inspection profile.
Gateway helper commands:
pdm run rosetta gateway explain
pdm run rosetta gateway tools
pdm run rosetta gateway resources
pdm run rosetta gateway prompts
Metadata
Release files for rosetta-mcp-workspace 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rosetta_mcp_workspace-0.4.0.tar.gz | 90.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rosetta_mcp_workspace-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 199.7 kB
Release files / rosetta_mcp_workspace-0.4.0.tar.gz
| Download URL | rosetta_mcp_workspace-0.4.0.tar.gz |
|---|---|
| Size | 90.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
75f049fbbb2efe3b7bb66d6f70e22acea5cf4ce978fb76a7b491547da4845bb7
|
|
BLAKE2b-256 checksum How to use checksums |
2ab4a7ec3509ba493719e0fc006bd882b5eb6ebf7f0a5b3bc0cceddc610b5579
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 11, 2026.
Transparency logRelease files / rosetta_mcp_workspace-0.4.0-py3-none-any.whl
| Download URL | rosetta_mcp_workspace-0.4.0-py3-none-any.whl |
|---|---|
| Size | 109.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8eb81ed60f5f53c0e2315c8f275816faee066fb872318fa2fe3685b6453ee244
|
|
BLAKE2b-256 checksum How to use checksums |
fb057d72c2348b879e195ca053fb57b1e3c90227650eaebea4b30ed60f178c64
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 11, 2026.
Transparency log