stories.yaml — an open specification for software requirements, enforced by CI.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-jonybur-oc-mcp-server": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
stories.yaml — an open specification for software requirements, enforced by CI.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationBe the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in other
Pi Coding Agent extension (CLI-first) — routes bash/read/grep/find/ls through lean-ctx CLI for strong token savings. Optional MCP bridge can register advanced tools.
Apify MCP Server
97% token reduction for AI coding sessions — zero deps, 21 languages, MCP server
MCP proxy that compresses prose fields (tool descriptions, etc.) using caveman rules. Same accuracy, fewer context tokens.
MCP Security Weekly
Get CVE alerts and security updates for io.github.jonybur-oc/mcp-server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Give your AI coding agent the spec it should be reading before writing code.
MCP server for Locus — exposes your stories.yaml as structured resources and tools for Claude Code, Cursor, Windsurf, Zed, OpenAI Codex, Continue.dev, GitHub Copilot, and any MCP-compatible client.
stories.yaml is the single source of truth for your product requirements. It lives in your repo. No account required.
Add one entry to your Claude Code config (~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"locus": {
"command": "npx",
"args": ["-y", "@locus-dev/mcp-server"]
}
}
}
That's it. No API keys, no credentials, no account.
The server reads stories.yaml from your project directory automatically.
Compatible with Claude Code, Codex, Cursor, Continue.dev, GitHub Copilot, and any MCP-compatible coding agent.
stories.yamlbelongs to you. It lives in your repo. Switch AI tools anytime — your spec stays intact.
stories.yaml file to your project root (see schema docs)The server finds stories.yaml automatically:
LOCUS_STORIES_PATH env var if setstories.yaml in the current directorystories.yaml at the repo root (stops at .git)stories.yml and stories.jsonIf you use the Locus platform for team sync, set these environment variables to enable cloud mode:
| Variable | Description |
|---|---|
PROTOTYPER_API_KEY | Supabase user JWT (from Locus web app → Settings → API Keys) |
PROTOTYPER_SUPABASE_URL | Your Supabase project URL |
PROTOTYPER_PROJECT_ID | Default project UUID (optional — avoids passing project_id to every call) |
Cloud mode config example:
{
"mcpServers": {
"locus": {
"command": "npx",
"args": ["-y", "@locus-dev/mcp-server"],
"env": {
"PROTOTYPER_API_KEY": "your-jwt",
"PROTOTYPER_SUPABASE_URL": "https://your-project.supabase.co",
"PROTOTYPER_PROJECT_ID": "optional-project-uuid"
}
}
}
}
If PROTOTYPER_API_KEY and PROTOTYPER_SUPABASE_URL are both set, cloud mode activates automatically. Otherwise, file mode is used.
| Variable | Mode | Description |
|---|---|---|
LOCUS_STORIES_PATH | File | Explicit path to stories.yaml (overrides auto-discovery) |
PROTOTYPER_API_KEY | Cloud | Supabase user JWT |
PROTOTYPER_SUPABASE_URL | Cloud | Supabase project URL |
PROTOTYPER_PROJECT_ID | Cloud | Default project UUID |
list_storiesList user stories with optional filters.
list_stories(status="not-implemented", section="Leave Management")
Parameters:
project_id (optional) — file mode: always local; cloud mode: defaults to PROTOTYPER_PROJECT_IDstatus — not-implemented | partial | implemented | stale | deprecated | all (default: all)section — case-insensitive partial match on story sectionget_storyGet full detail for a single story.
get_story(story_id="US-04")
Parameters:
story_id (required) — e.g. US-01, AUTH-03project_id (optional)Returns: Full story YAML including description and acc