An orchestrator that plans, executes, and verifies AI skills through a local daemon and MCP stdio server.
Also known as youcisla/Agent-Foundry, agent-foundry-runtime
- Stars
- 1
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 0.4.2
- Last commit
- Oct 31, 2026
- License
- MIT
What is Agent Foundry MCP?
Agent Foundry is an orchestrator that plans, executes, and verifies AI skills through a local daemon and MCP stdio server.
Summary generated from the project's README
About Agent Foundry MCP server
Developers looking to improve the reliability of AI coding assistants can use Agent Foundry to orchestrate, execute, and verify complex tasks. It functions as a local runtime that uses a daemon and an MCP stdio server to manage a workflow of planning and execution. By integrating with providers like Claude or OpenAI via LiteLLM, it helps steer models away from common mistakes like over-commenting or unnecessary package installations.
The system operates entirely locally, storing execution data in a SQLite database. Users can install the skills via npm or the runtime via pip, requiring an Anthropic or OpenAI API key to function. It features a catalog of 41 original skills, such as anti-slop and plan-before-code, which act as disciplines for the model. The architecture includes specialized agents like a planner, critic, and orchestrator to ensure work meets specific quality standards.
Written from the project's README. Every use case is checked against a quote from it.
How to install Agent Foundry MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall Agent Foundry MCP in Claude Code
$ claude mcp add agent-foundry -- uvx agent-foundry-runtimeInstall Agent Foundry MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"agent-foundry": {
"command": "uvx",
"args": [
"agent-foundry-runtime"
]
}
}
}Install Agent Foundry MCP in VS Code
.vscode/mcp.json
{
"servers": {
"agent-foundry": {
"type": "stdio",
"command": "uvx",
"args": [
"agent-foundry-runtime"
]
}
}
}Install Agent Foundry MCP in VS Code CLI
$ code --add-mcp '{"name":"agent-foundry","type":"stdio","command":"uvx","args":["agent-foundry-runtime"]}'Install Agent Foundry MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"agent-foundry": {
"command": "uvx",
"args": [
"agent-foundry-runtime"
]
}
}
}Install Agent Foundry MCP in Codex
$ codex mcp add agent-foundry -- uvx agent-foundry-runtimeInstall Agent Foundry MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.agent-foundry] command = "uvx" args = ["agent-foundry-runtime"]
Install Agent Foundry MCP in Gemini CLI
$ gemini mcp add -s user agent-foundry uvx -- agent-foundry-runtimeInstall Agent Foundry MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"agent-foundry": {
"command": "uvx",
"args": [
"agent-foundry-runtime"
]
}
}
}Configuration
ANTHROPIC_API_KEY
| Name | Description | |
|---|---|---|
| ANTHROPIC_API_KEY | — |
Automated checks
Ran Nov 14, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachableyoucisla/agent-foundry is public and reachablegithub.com/youcisla/agent-foundry ↗Pass
- Package names this repository as its sourceNot checked
- Build provenance (Sigstore attestation)No build attestation published for this releaseNot checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-10-31github.com/youcisla/agent-foundry ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from agent-foundry-runtimePass
- No critical advisory in the package or its dependencies68 resolved dependencies checked; no critical advisoryosv.dev ↗Pass
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubAgent Foundry
Skill and agent runtime for AI coding assistants.
Plan → execute → verify. Skills, agents, a local daemon. MIT, local, no cloud. 41 original skills. Two optional skills carry their own Apache-2.0 license; see LICENSES.md.
Quick start · Catalog · Architecture · Commands · Web app
Why Agent Foundry
Models hallucinate. They over-comment. They reach for
npm installwhen you asked for a one-line fix. Agent Foundry steers the model back to the actual work.
Three layers:
| Layer | What | Lives in |
|---|---|---|
| 🧠 Skills | Disciplines the model applies (how to think, not what to know) | skills/core/<name>/SKILL.md |
| 🤖 Agents | Roles the orchestrator can dispatch (critic, planner, orchestrator) | agents/af-*/AGENT.md |
| ⚙️ Orchestrator | Local daemon that ranks, dispatches, executes, logs, judges | agent_foundry/ (Python) |
Each layer is portable. A skill body is a plain markdown file with a trigger
phrase. An agent is a role definition. The orchestrator is a Python package
you can pip install or run from source.
Quick start
1. Install
Two independent lanes. Install one or both.
Skills (Node 22.14+, no Python):
macOS / Linux / Git Bash:
curl -fsSL https://raw.githubusercontent.com/youcisla/Agent-Foundry/main/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/youcisla/Agent-Foundry/main/scripts/install.ps1 | iex
Or run the installer from npm without a global install (any OS). The explicit package plus bin form selects the Node installer even when the Python package is also installed:
npx --yes --package @youcisla/agent-foundry agent-foundry-install
npx --yes --package @youcisla/agent-foundry agent-foundry-install --list
A global install exposes the same bin:
npm install -g @youcisla/agent-foundry
agent-foundry-install --list
The same package is mirrored on GitHub Packages:
https://github.com/youcisla/Agent-Foundry/pkgs/npm/agent-foundry.
Runtime (Python 3.10-3.14, no Node):
pip install agent-foundry-runtime
agent-foundry-runtime init
agent-foundry-runtime doctor
uvx agent-foundry-runtime mcp # MCP stdio server, no install needed
Registry name: io.github.youcisla/agent-foundry.
agent-foundry still works as a compatibility alias from either package, but
two packages can install the same name. Scripts should use
agent-foundry-install (Node) and agent-foundry-runtime (Python). The alias
is kept until at least 2027-06-30.
Every harness gets each skill as a direct child of its real discovery root. See docs/harness-compatibility.md for the path matrix and the dos/don'ts.
Then set an API key:
export ANTHROPIC_API_KEY=sk-... # or OPENAI_API_KEY
2. Use it
In Claude Code (or any harness that accepts slash commands):
/af "build a react component" # plan + execute
/plan "audit this API" # see which skills match
Without a harness:
agent-foundry-runtime plan "kill generic AI slop"
agent-foundry-runtime run "refactor the API design"
agent-foundry-runtime doctor
3. Or browse first
→ youcisla-agents.vercel.app has the full catalog, an interactive knowledge graph, and one-click install.
4. Or connect over MCP
agent-foundry-runtime mcp # stdio MCP server: plan, execute, list_skills, search_skills, get_skill, verify_skills, check_action, runtime_status, execution_history, list_models
Or run the published package directly:
uvx agent-foundry-runtime mcp
Registered name: io.github.youcisla/agent-foundry.
5. Measure a skill instead of trusting it
agent-foundry-runtime eval --tasks tasks.json
Each task runs twice, with and without the skill, and reports the pass-rate
lift. Task format: {"id", "prompt", "skill", "verify"} where verify is a
shell command that receives the output on stdin. The layout matches
SkillsBench v1.1 (benchflow/skillsbench), so published benchmarks can be
reused.
Architecture
Your prompt (/af build a react component)
└─▶ Agent Foundry daemon
└─▶ planner · rank_skills
└─▶ executor · LiteLLM ⇄ LLM provider (Claude, OpenAI, …)
└─▶ SQLite · executions.db
└─▶ Response to user
Published through three channels: npm (@youcisla/agent-foundry), PyPI
(agent-foundry-runtime), and the official MCP registry
(io.github.youcisla/agent-foundry).
Interactive versions of every diagram live on the site: /architecture, /graph (knowledge graph + orchestration), and /audit.
What's in the box
skills/ 41 disciplines (31 core + 10 optional) ─┐ feed
agents/ af-planner · af-critic · af-orchestrator │ the
▼ indexer
agent_foundry/ config.py ─▶ daemon.py (FastAPI) ─▶ mcp_server.py (stdio MCP)
indexer.py ─▶ planner.py ─▶ loop.py ⇄ executor.py
loop.py ─▶ judge.py (af-critic) ─▶ logging_db/
scripts/ install.js ─▶ 14 harness skill roots + CLI index
The daemon is lazy-started by the CLI, so there is no systemd/launchd requirement.
Everything runs locally. Your data stays in ~/.config/agent-foundry/executions.db.
The loop, end to end
1. user → run_loop : /af "kill generic AI slop"
2. run_loop → planner : rank_skills(prompt, index)
3. planner → run_loop : top match (e.g. anti-slop, 0.24)
4. run_loop → run_loop : budget guard
5. run_loop → executor : build_messages(prompt, body)
6. executor → LiteLLM : POST /v1/messages
7. LiteLLM → executor : response text
8. executor → run_loop : response + cost
9. (judge=true) run_loop → af-critic : score → {corr, slop, scope, verdict}
10. run_loop → SQLite : log_execution(...)
11. run_loop → user : LoopResponse {output, plan, judge_score?}
Catalog
41 skills, 3 agents. Original work; MIT except two optional skills
(chrome-devtools-mcp-bridge, persistent-memory) licensed Apache-2.0 in
their own frontmatter. Each skill:
- 📏 ≤150 lines / ≤8 KB (Codex cap, no exceptions)
- 🎯 Exactly one trigger phrase (
Use when...so the model knows when to fire) - 🚫 Anti-patterns + Verification checklist (teach what not to do, then confirm it was done)
- ⚡ Action verbs, not tool names (
examinenotRead,createnotWrite)
Core skills (31)
| Skill | Trigger |
|---|---|
anti-slop |
Kill generic AI patterns before they ship |
api-design |
Use when creating a new API endpoint or reviewing API consistency |
automation-pick |
Decide whether to automate a task before automating |
bottleneck-gating |
Phase a project by measured bottleneck, not intuition |
budget-guard |
Set and enforce a hard spend ceiling for paid loops |
constraint-then-solve |
Restate the problem, catalog constraints, then solve |
context-optimization |
Use on any task with >2K-token outputs, big files, or repeated reads |
cron-troubleshoot |
Debug a missing or wrong cron job |
e2e-test-strategy |
Use when designing test coverage for a web app or API |
engram-routing |
Route prompts via O(1) N-gram lookup when trigger patterns should match fast |
execution-observability |
Log model, cost, latency, and outcome for every run |
fallback-model-routing |
Route around provider failures and report which model answered |
feedback-loop |
After shipping, instrument → measure → iterate |
knowledge-extract |
Turn a session into a skill draft |
landscape-first |
Research the space before building |
measure-first |
Use when about to optimize, refactor, or claim a system is slow |
plan-before-code |
Use before writing any non-trivial code change |
plan-then-act |
Use when a task has multiple steps and the order matters |
prompt-discipline |
Use on every non-trivial task: think, simplify, edit surgical, stay goal-driven |
pushback-when-wrong |
Use when reviewing an assertion that smells off |
quality-protocol |
Use before declaring a task complete |
re-verify-findings |
Use after any prior verification claimed a finding |
read-before-build |
Read source files before writing code |
session-closeout |
Apply at the end of any multi-step project |
session-distill |
Extract patterns from every session |
show-your-work |
Output a thinking trace after complex tasks |
structured-output-contract |
Enforce a JSON Schema for machine-read output |
verify-first |
Apply before committing to any claim |
workflow-decompose |
Use when designing or debugging an automation |
cache-identity |
Version and bound caches; publish atomically |
judge-integrity |
Separate judge failure from a low score |
Optional skills (10)
| Skill | Trigger |
|---|---|
persistent-memory |
Use when persisting context across sessions or threading memory across agents |
token-compression |
Compress tool outputs before they consume context |
chrome-devtools-mcp-bridge |
Drive Chrome DevTools from an agent |
design-language |
Apply Apple-grade UI polish |
funnel-pr-guard |
Guard conversion-critical paths from breaking |
sql-migration-trio |
Three-file migration pattern (up/down/schema) |
agent-memory-vault |
Shared structured memory that survives agent sessions |
agent-team-standards |
Per-project locked agent skill set with version pins |
autonomous-briefing |
Run a fully autonomous morning briefing |
book-to-skill |
Convert book chapters or long articles into a runnable skill |
Agents (3)
| Agent | Model | Job |
|---|---|---|
af-critic |
opus |
Score output on correctness, slop, scope. Returns JSON. |
af-planner |
opus |
Decompose a request into a skill/agent plan. Returns JSON. |
af-orchestrator |
opus |
Dispatch subtasks to specialized agents and skills, then merge results. |
Commands
| Command | What it does |
|---|---|
agent-foundry-runtime init [--force] |
Write config and the first skill index |
agent-foundry-runtime index |
Rebuild the skill index from disk |
agent-foundry-runtime plan "<prompt>" |
Rank skills for a prompt |
agent-foundry-runtime run "<prompt>" |
Plan + execute the top-ranked skill |
agent-foundry-runtime resume <session_id> "<prompt>" |
Continue a loop session with a follow-up |
agent-foundry-runtime session <session_id> |
Inspect a stored loop session |
agent-foundry-runtime execute <skill_id> "<prompt>" |
Run a specific skill |
agent-foundry-runtime doctor |
Health-check: config, index, daemon, API key |
agent-foundry-runtime status |
Routing accuracy, fallback rate, average cost |
agent-foundry-runtime consult "<need>" |
Recommend skills for a need |
agent-foundry-runtime cost-report |
Token and time estimates per skill |
agent-foundry-runtime feedback <id> <score> |
Attach a human score to an execution |
agent-foundry-runtime rejudge <id> [--model] |
Re-score stored output without re-running the completion |
agent-foundry-runtime calibrate [--bins N] |
Compare judge scores with human feedback |
agent-foundry-runtime prune --older-than-days N [--dry-run] |
Delete old executions, observations, policy decisions, and perf stats |
agent-foundry-runtime learn [--scope project|global] |
Learn trigger weights from judged executions |
agent-foundry-runtime instincts [--explain <id>] [--proposals] |
List instincts, explain evidence, or write review-only proposals |
agent-foundry-runtime instinct-approve <id> |
Approve an instinct and persist it |
agent-foundry-runtime attest |
Sign a manifest of skill file hashes and frontmatter digests |
agent-foundry-runtime verify [--strict] |
Verify the installed manifest and signature |
agent-foundry-runtime gate --kind <kind> --value <value> |
Classify an action as allow, confirm, or deny |
agent-foundry-runtime browse |
Browse/search the catalog, or --read <id> |
agent-foundry-runtime mcp |
Start the MCP stdio server (plan/execute/list_skills/search_skills/get_skill/verify_skills/check_action/runtime_status/execution_history/list_models) |
agent-foundry-runtime eval --tasks <file> |
Paired skill eval: with vs without, reports lift |
agent-foundry-runtime serve |
Start the daemon (lazy-started on first command) |
Every command also has an HTTP endpoint on the daemon for programmatic use:
/health, /site-data, /events, /index, /plan, /engram, /execute,
/loop, /loop/resume, /loop/{id}, /stats, /feedback, /learn,
/instincts, and /instincts/{id}/approve.
Capability boundary
What the runtime does not provide, stated so you do not discover it in production:
- No hosted execution sandbox. Skills run as prompts; tool execution belongs to the host harness.
- No multi-tenant auth or per-user quota enforcement. The daemon binds localhost and trusts the local user.
- No durable queue across daemon restarts. In-flight requests are lost if the process dies.
- No cross-provider load balancing. Routing is per-call chain order with optional historical attempt allocation.
- No semantic determinism guarantee from providers. The determinism contract covers the trace digest, not model sampling.
Install lanes
Skills and runtime are separate, explicit steps:
# Skills only: Node 22.14+, no Python
npx --yes --package @youcisla/agent-foundry agent-foundry-install --harness=codex
# Runtime only: Python 3.10-3.14, no Node
pip install agent-foundry-runtime && agent-foundry-runtime init
# init warns until content is installed with agent-foundry-install
Run the runtime from source (any OS):
git clone https://github.com/youcisla/Agent-Foundry.git ~/.agent-foundry
cd ~/.agent-foundry && pip install -e .
See INSTALL.md for the full matrix of harnesses, install lanes, and platforms.
Requirements
- Node 22.14+ for the skill installer (skills-only installs need no Python)
- Python 3.10-3.14 for the CLI, daemon, and MCP runtime (no Node required)
- macOS, Linux, or Windows
- A supported harness: Claude Code, Codex, Cursor, Gemini/Antigravity, OpenCode, Hermes, Zed, or any of the 14 adapters
- An API key (Anthropic, OpenAI, or any provider LiteLLM supports)
Quality gates
One entry point, explicit named gates, no bash required for the default scopes:
python scripts/check.py --fast # inner loop
python scripts/check.py --all # pre-merge and CI
python scripts/check.py --release # built artifacts and SBOM
scripts/check.py runs each gate with a timeout, prints a machine-readable
summary with --json, and never counts a skipped gate as a pass for release.
See docs/testing.md for the gate scopes and the offline
routing evaluation.
Metrics
Counts and measured values below are generated from live sources; do not edit them by hand.
| Metric | Value | Source |
|---|---|---|
| Version | 0.6.0 | package.json |
| Skills | 41 (31 core + 10 optional) | skills/ (filesystem) |
| Agents | 3 | agents/ (filesystem) |
| Adapters | 14 | scripts/install.js |
| Commands | 25 | agent_foundry/cli.py (Click tree) |
| Http Endpoints | 15 | agent_foundry/daemon.py (routes) |
| Routing Top1 | 85.8% | evals/routing/baseline.json |
| Routing Top3 | 99.1% | evals/routing/baseline.json |
| Gates | 20 named gates | scripts/check.py |
31 core + 10 optional = 41 skills
Provenance (generated_at, revision) lives in web/metrics.js.
Skill evidence
Each skill has a generated sidecar record in data/skills/<id>.json. A tier is
published evidence, never an assertion:
| Tier | Name | Requirement |
|---|---|---|
| L0 | Metadata | valid frontmatter |
| L1 | Static contract | the content lint passes |
| L2 | Routing evidence | at least two labelled routing cases with a top-1 hit and documented neighbors |
| L3 | Behavioural evidence | paired offline eval with at least three deterministic-verifier tasks and a stored artifact |
| L4 | Field evidence | opt-in human feedback with a reviewer sign-off |
python scripts/gen-skill-evidence.py regenerates every record from the live
corpus and lint. --check fails when a body edit makes a record stale (the body
hash changes, so the tier must be re-reviewed before it can be claimed again).
Routing evidence is selection evidence only; records never present it as task
efficacy, and L3 records appear only when paired-eval artifacts exist under
data/evals/.
Releasing
Maintainers publish through .github/workflows/release.yml. See
docs/releasing.md for the dry run, trusted-publisher
prerequisites, tag rules, and recovery steps. The local scripts/publish.sh
is an emergency fallback only.
Web app
Browse the catalog, the knowledge graph, and the audit at youcisla-agents.vercel.app:
| Page | What |
|---|---|
| Catalog | All 41 skills + 3 agents with live search |
| Graph | Interactive knowledge graph canvas; no fixed counts are claimed here |
| Audit | God nodes, surprising connections, interactive React Flow diagrams |
The site regenerates from live repo state on every commit via
scripts/gen-site-data.py → Vercel build → deploy.
Roadmap
| Status | Item |
|---|---|
| ✅ v0.1 | Python package + FastAPI daemon + Claude Code plugin |
| ✅ v0.2 | Foundational audit, frozen Config, multi-page web app, knowledge graph, interactive React Flow diagrams |
| ✅ v0.3 | npm package, Engram O(1) routing, af-orchestrator agent, harness adapters |
| ✅ v0.4 | PyPI + MCP registry, loop sessions, deterministic site data, per-skill adapter installs |
| 📋 next | af verify signed-manifest integrity |
See docs/launch-plan.md for the full design spec.
License
MIT, except the two optional skills that declare Apache-2.0 in their own frontmatter. All skills, agents, and authored artifacts are original work by the Agent Foundry Contributors. See AUTHORSHIP.md for the attribution policy, LICENSES.md for the per-artifact license ledger, and SECURITY.md for the private vulnerability reporting and supply-chain policy.
Built by Youcisla · Contribute · Report an issue
Agent Foundry MCP questions
How do I add Agent Foundry MCP to Claude Code?
Run claude mcp add agent-foundry -- uvx agent-foundry-runtime in your terminal. Add --scope user to make it available in every project.
How do I add Agent Foundry MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
How do I connect Agent Foundry via MCP?
You can connect using the command agent-foundry-runtime mcp to start a stdio MCP server, or run it directly via uvx agent-foundry-runtime mcp.