Lets your AI assistant tap into your team's internal engineering knowledge stored in md.md's versioned Markdown blocks. Exposes tools like resolve_context to inject relevant docs based on task context, plus block lifecycle operations (create, update, publish) and observability calls like list_injection_logs. The server sits between your IDE and md.md's backend, forwarding requests over stdio and handling the resolution logic that figures out which published blocks matter for your current work. Useful when you're tired of re-explaining architecture decisions and coding standards in every prompt and want your team's collective context available on demand.
md.md is a team intelligence platform that turns internal engineering knowledge into versioned Markdown blocks, then injects the right context into AI-assisted development workflows.
It combines:
AI coding assistants are strong at general coding but weak on team-specific context. Without shared context, teams repeatedly re-explain standards, architecture decisions, and workflows.
md.md solves this by letting teams:
app-backend/: NestJS API for auth, block lifecycle, policy resolution, and observabilityapp-client/: React + Vite dashboard for block authoring, publishing, and resolve previewmcp-server/: Model Context Protocol server that exposes md.md tools over stdioide-integrations/: IDE integration documentation (currently Cursor-focused)docs/: Product vision, phase plan, and resolution model design docsmcp-server toolsA named unit of team knowledge containing one or more Markdown files.
Draft content can be edited freely. Published versions are stable and intended for consumption.
Data and permissions are scoped by team and workspace.
At usage time, the system resolves and composes relevant published blocks into an AI-ready payload.
app-backend)Tech stack:
pg (Supabase-compatible connection)Responsibilities:
Notable backend capabilities:
mdmd_<token>app-client)Tech stack:
Responsibilities:
mcp-server)Tech stack:
@modelcontextprotocol/sdkResponsibilities:
Primary tools include:
resolve_contextattach_blockslist_blocksget_blockhealth_checkcreate_block, update_block, publish_block, etc.)whoami, list_injection_logs)ide-integrations)Contains setup patterns for connecting editors to the MCP server.
Current documented integration:
docs)idea_1.0.md: product rationale and system visionphases_1.0.md: implementation roadmap (phase-oriented)resolution_model.md: detailed target model for selection, ordering, and compositioncd app-backend
npm install
Create app-backend/.env with at least:
SUPABASE_DATABASE_URL=postgresql://<user>:<password>@<host>:<port>/<db>
Start backend:
npm run start:dev
From app-backend:
npm run create-admin -- \
--email admin@yourcompany.com \
--name "Admin User" \
--team team-alpha \
--workspace workspace-core
Save the generated mdmd_... key securely.
cd ../app-client
npm install
npm run dev
cd ../mcp-server
npm install
npm run build
npm start
Set environment variables for MCP runtime (either shell or IDE config):
MD_MD_API_URL=http://localhost:3000
MD_MD_API_KEY=mdmd_your_key_here
cd app-backend
npm run start:dev
npm run build
npm run test
npm run test:e2e
npm run lint
cd app-client
npm run dev
npm run build
npm run lint
npm run preview
cd mcp-server
npm run dev
npm run build
npm start
Recent local ignore defaults in mcp-server/.gitignore include:
.mcpregistry_github_token.mcpregistry_registry_tokenImplemented:
In progress or planned:
app-backend/docs/mcp-server/README.mdide-integrations/README.mddocs/See license declarations in each package (app-backend, app-client, mcp-server).
MD_MD_API_KEY*secretAPI key for md.md backend
MD_MD_API_URLBase URL of md.md backend API
MD_MD_TEAM_IDOptional team scope override
MD_MD_WORKSPACE_IDOptional workspace scope override
csoai-org/pdf-document-mcp
xt765/mcp-document-converter
io.github.xjtlumedia/markdown-formatter
io.github.ai-aviate/better-notion
suekou/mcp-notion-server
meterlong/mcp-doc