Skip to content

Plasm OSS documentation

Plasm turns APIs into a typed graph (what exists, how it relates, what you can do), maps that graph to HTTP or GraphQL calls, and exposes a compact language agents can learn once—then reuse across catalogs. This site teaches how to run the open-source stack, connect new APIs, or embed the engine in your own systems.

Repository: plasm-core.


Pick your path

Path You want to… Start here
Run the MCP appliance Operate plasm-mcp (HTTP + Streamable MCP), persistence, and credentials for real teams Run the MCP appliance
Connect an API Author domain.yaml + mappings.yaml, validate, pack plugins Connect an APICatalog index
Embed Plasm Use crates (plasm-runtime, plasm-agent-core) or subprocess plasm-mcp from CI/agents Embed Plasm

New to the ideas? Read How Plasm fits together, then Start here.


How the pieces stack (one minute)

  1. Graph (CGS) — Entities, fields, relations, capabilities: what the domain is (split catalogs: field/param value_ref into values: semantic slots).
  2. Mappings (CML) — Per-capability templates: how calls hit the wire.
  3. Runtime — Executes capabilities, caches rows, handles paging and effects.
  4. Plasm language — Path expressions and programs agents emit against a live DOMAIN table (e# / m# / p#).
  5. Hostplasm-mcp serves MCP tools + HTTP discovery/execute; optional DB-backed MCP policy when configured.

Details and edge cases live in the Reference section and AGENTS.md.


Need Page
First commands and “did it work?” Start here
Mental model + vocabulary Concepts
Language + heredocs Language specification
MCP sessions and intent MCP session reuse
Full CLI/env index CLI & environment

Maintainers

Sources under doc-site/docs/ are curated for the public OSS repo; some pages are synced via doc-site/scripts/sync_allowlisted_docs.py — see doc-site/README.md. Examples focus on HTTP and GraphQL catalogs.

OAuth apps blocked? Self-hosted OAuth (especially Google Workspace) is often operationally heavy. Plasm Cloud hosts OAuth provider registration and outbound connection flows for teams that prefer not to own every client ID.