Instruction MCP Server
Serves markdown instructions as tools to provide LLMs with team playbooks, coding standards, domain knowledge, and personal workflows through version-controlled files.
README
instruction-mcp
A minimal MCP server that serves markdown instructions as tools.
Why?
LLMs work better with context. Instead of copy-pasting instructions into every conversation, define them once and deliver them to all your LLM applications — Claude Desktop, Claude Code, and any MCP-compatible client.
Use cases:
- Team playbooks — Coding standards, review checklists, incident response
- Domain knowledge — Data dictionaries, API conventions, business rules
- Personal workflows — Analysis templates, writing guides, debugging steps
No UI, no database — just a YAML config and markdown files. Version control your instructions with git, share them across your team.
How It Works
- Define tools in
instruction.yamlpointing to markdown files - Run the MCP server
- Claude sees your tools and calls them based on conversation context
- Tool returns the markdown content
- Claude uses the instructions to help with your task
Understanding Tool Behavior
Tool descriptions determine when Claude calls the tool. Claude reads all available tool descriptions and picks the relevant one based on your prompt.
Tool responses are context, not commands. When a tool returns markdown, it's added to the conversation like any other text. Claude doesn't automatically "follow" it — your prompt determines that.
Retrieval vs Action
# Just retrieves and summarizes
"What's our code review process?"
# Retrieves AND follows the instructions
"Review this PR following our code review process"
The word "following" makes Claude apply the instructions rather than just report them.
Being Explicit
For guaranteed results, name the tool directly:
"Use get_code_review to review this PR and follow the checklist"
This ensures:
- The tool is called (no relying on description matching)
- The instructions are followed (not just retrieved)
Quick Start
1. Create your config
# instruction.yaml
version: "1"
tools:
get_coding_standards:
title: "Coding Standards"
description: "Team coding standards and best practices"
default: "general"
instructions:
general: "resources/standards/general.md"
typescript: "resources/standards/typescript.md"
testing: "resources/standards/testing.md"
2. Add your markdown files
my-instructions/
├── instruction.yaml
└── resources/
└── standards/
├── general.md
├── typescript.md
└── testing.md
3. Validate
npx instruction-mcp validate -c instruction.yaml
4. Add to Claude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"my-instructions": {
"command": "npx",
"args": ["instruction-mcp", "-c", "instruction.yaml"],
"cwd": "/absolute/path/to/my-instructions"
}
}
}
5. Use in Claude
"Review this PR for me"
Claude will call get_coding_standards and use your team's standards to review the code.
CLI
# Validate config and check all files exist
npx instruction-mcp validate -c instruction.yaml
# List all tools and instructions
npx instruction-mcp list -c instruction.yaml
# Start server (stdio mode)
npx instruction-mcp -c instruction.yaml
Config Reference
version: "1"
tools:
tool_name: # Tool name exposed to Claude
title: "Human Title" # Display name
description: "..." # Helps Claude decide when to use this tool
default: "key" # Optional: default if no instruction specified
instructions:
key1: "path/to/file.md" # Instruction key -> markdown file
key2: "path/to/other.md"
| Field | Type | Required | Description |
|---|---|---|---|
title |
string | yes | Human-readable tool name |
description |
string | yes | Description for Claude's tool selection |
default |
string | no | Default instruction key |
instructions |
map | yes | Key-value pairs of name: filepath |
Example
See example/ for a complete working setup with analyst playbooks and code review checklists, including Docker deployment.
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.