soul-mcp-server
soul-mcp-server
MCP server for SOUL.md — validate and generate soul files directly from Claude Desktop or any MCP-compatible client.
Built for Agenturo — the reference SOUL.md implementation. Deploy your soul file as a live agent on your own subdomain.
30-second setup
Add this to your claude_desktop_config.json (usually at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"soul-md-cli": {
"command": "npx",
"args": ["soul-mcp-server"]
}
}
}Restart Claude Desktop. The three soul tools will appear in your tool list.
Related MCP server: 50 First Tapes MCP Server
Tools
validate_soul_file
Validates a .soul.md file against the SOUL.md schema.
Parameters:
path(string, required) — path to the soul file
Returns: JSON with pass boolean, name, version, and errors array.
Example prompt:
"Validate my soul file at ~/agents/marcus.soul.md"
generate_soul_template
Generates a starter .soul.md for a given agent name and keywords.
Parameters:
name(string, required) — the agent's namekeywords(string[], optional) — domain keywords to seed the template
Returns: A ready-to-edit soul file as a string.
Example prompt:
"Generate a soul template for a climate scientist who specializes in carbon capture"
score_soul_file
Returns a completeness score (0–100) based on how many optional fields are filled.
Parameters:
path(string, required) — path to the soul file
Returns: JSON with score, filled, missing, and total.
Example prompt:
"Score my agent at ~/agents/startup-advisor.soul.md and tell me what's missing"
Spec & examples
Full specification: soul-spec
Curated community soul files: awesome-soul-files
CLI validator (no Claude required): soul-md-cli
MIT License. Created by Anton Agafonov.
Available Tools
3 toolsgenerate_soul_templateB
Generate a starter SOUL.md file for a given agent name and keywords.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The agent's name. | |
| keywords | No | Keywords describing the agent's domain or expertise. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool generates a file but doesn't describe what 'starter' implies (e.g., template structure, default content), whether it overwrites existing files, requires specific permissions, or handles errors. This leaves significant gaps for a file-creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Generate a starter SOUL.md file') and specifies the inputs. There is no wasted wording, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (file generation with two parameters), no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose but lacks details on behavioral traits, usage context, and output format, which are important for effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting both parameters. The description adds marginal value by contextualizing 'name' and 'keywords' as inputs for agent customization, but doesn't provide additional syntax, format details, or examples beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Generate') and resource ('starter SOUL.md file'), and identifies the target ('for a given agent name and keywords'). However, it doesn't explicitly differentiate from sibling tools like 'score_soul_file' or 'validate_soul_file', which appear to operate on existing files rather than creating new ones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings. It doesn't mention alternatives, prerequisites, or exclusions, leaving the agent to infer usage from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_soul_fileB
Return a completeness score (0-100) for a SOUL.md file based on how many optional fields are filled.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the .soul.md file to score. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns a score but doesn't describe what happens if the file is missing, invalid, or inaccessible; whether it has side effects; or what the scoring algorithm entails beyond 'optional fields'. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core functionality and avoids redundancy, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (scoring based on optional fields), lack of annotations, and no output schema, the description is minimally adequate. It explains what the tool does but doesn't cover behavioral aspects like error handling or scoring details. For a tool with no structured output or annotations, more context would be beneficial to ensure reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'path' documented as 'Path to the .soul.md file to score.' The description doesn't add any meaning beyond this, such as file format expectations or path resolution rules. With high schema coverage, the baseline score of 3 is appropriate, as the schema handles the parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Return a completeness score (0-100) for a SOUL.md file based on how many optional fields are filled.' It specifies the verb ('return'), resource ('SOUL.md file'), and scoring mechanism ('completeness score based on optional fields'). However, it doesn't explicitly distinguish this from sibling tools like 'validate_soul_file', which might perform similar validation functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'generate_soul_template' or 'validate_soul_file', nor does it specify prerequisites or contexts where scoring is appropriate versus other operations. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_soul_fileB
Validate a SOUL.md file against the schema. Returns pass/fail and field-level errors.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the .soul.md file to validate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the return format ('pass/fail and field-level errors'), which adds some behavioral context. However, it doesn't disclose other traits like error handling, performance, or side effects (e.g., whether it modifies the file). For a validation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the purpose and includes return information. Every word earns its place with no redundancy or waste, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is adequate but has gaps. It covers purpose and returns, but lacks usage guidelines and full behavioral transparency. For a validation tool, this is minimally viable but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'path' parameter documented as 'Path to the .soul.md file to validate.' The description doesn't add any meaning beyond this, such as file format details or path constraints. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Validate a SOUL.md file against the schema.' It specifies the verb (validate), resource (SOUL.md file), and action (against schema). However, it doesn't explicitly differentiate from sibling tools like 'score_soul_file' or 'generate_soul_template' beyond the validation focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or contexts where validation is preferred over scoring or template generation. Usage is implied by the purpose but lacks explicit when/when-not instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.0- First observed
generate_soul_template - First observed
score_soul_file - First observed
validate_soul_file
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: generate creates a new file, score evaluates completeness, and validates checks schema compliance. There is no overlap in functionality, and an agent can easily distinguish between them based on their specific actions.
All tool names follow a consistent verb_noun pattern with snake_case (generate_soul_template, score_soul_file, validate_soul_file). The verbs (generate, score, validate) are distinct and appropriately descriptive, maintaining a predictable naming convention throughout.
With only 3 tools, the set feels thin for a server focused on SOUL.md file management. While it covers basic operations (create, evaluate, validate), it lacks tools for updating, deleting, or listing files, which could limit agent workflows in this domain.
The tools cover creation, scoring, and validation, but there are notable gaps in the lifecycle. Missing operations like update_soul_file, delete_soul_file, or list_soul_files prevent full CRUD coverage, which could lead to dead ends for agents trying to manage multiple files.
Maintenance
Related MCP Connectors
Research-backed linting + generation for agent context files (CLAUDE.md, AGENTS.md, Cursor rules).
Generate and validate a .specs/ bundle for your repo, then hand it to your AI coding agent
2137Public agentic AI doctrine tools plus authenticated architecture, design, and spec validators.
Command your AI agents: verifiable passports, credential injection, full audit, revoke in 60s.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceIdentity infrastructure for AI agents. Gives agents an evolving persona, session continuity, and self-correcting retrieval so they stop being strangers. Local-first, model-agnostic.8AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to read and write a local-first knowledge base of plain markdown files in git, with governance gates for safe, hash-anchored edits.1Apache 2.0
- AlicenseNot gradedqualityCmaintenanceA soul document API for AI agents. Injects a short grounding preamble into your agent's system prompt before each session — licensing honest uncertainty, refusing cliché, and holding judgment instead of faking it. One call. ~200 tokens. Same model, better agent.MIT

01 Protocol MCP Serverofficial
FlicenseNot gradedqualityDmaintenanceEnables creation, verification, and evolution of cryptographically verifiable AI agent identities (.01ai) via MCP for Claude Desktop and other MCP clients.1-