Using MCP Servers
MCP (Model Context Protocol) servers give the LLM access to external data during workflow execution: databases, APIs, file systems, anything that helps it produce better output instead of guessing.
Add an MCP server
This creates or appends to mcp.json at your project root. Edit the entry with the actual server command:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"],
"env": {}
}
}
}
How it works
When a workflow has a task_type (i.e., it calls the LLM), Kerf checks for mcp.json. If it exists, --mcp-config mcp.json is passed to the Claude CLI call. The LLM can then use MCP tools during its reasoning (querying a database, reading files, calling APIs) before returning its structured output.
No mcp.json = no MCP = no change in behavior. It's opt-in.
When to use MCP
MCP is most valuable when the LLM needs context it can't get from the input alone:
- Database lookups: classify a support ticket by looking up the customer's account
- File system access: summarize a document by reading related files
- API calls: enrich extracted data with live information
Without MCP, the LLM only sees the prompt you construct from the input. With MCP, it can pull in whatever context it needs.
Multiple servers
Add as many servers as you need:
All servers in mcp.json are available to every LLM call. The LLM decides which ones to use based on the task.
Format
mcp.json uses the same format as Claude CLI's --mcp-config. See the Claude CLI docs for the full spec.