Summary
ACF is a skill system (SKILL.md files), which means it only works with agents that support the Agent Skills spec. To reach agents that don't support SKILL.md (GitHub Copilot, Aider, Continue, Tabnine, custom agents), we need an MCP server that exposes ACF's pipeline as tools. This would make ACF agent-agnostic in the truest sense.
Context
- Current compatibility: 6 agents (Claude Code, Cursor, Codex, OpenCode, OpenClaw, Devin) via SKILL.md
- MCP (Model Context Protocol): the standard for agent tool exposure
- Roadmap:
docs/ROADMAP.md — Phase 5 (v1.x Expansion)
- MCP servers found in research: context7 (docs), github (repos), playwright (browser), sequential-thinking (reasoning)
Motivation
The Agent Skills spec is gaining adoption (20+ agents), but it's not universal. Major agents that DON'T support SKILL.md:
- GitHub Copilot — uses
.github/copilot-instructions.md, no skill system
- Aider — uses conventions in the chat, no skill files
- Continue — uses config.yaml, no skill system
- Tabnine — proprietary, no skill system
- Windsurf — uses
.windsurfrules, no skill system
- Cline — uses
.clinerules, partial skill support
- Custom agents — anyone building their own agent
These agents represent ~40% of the AI coding market. ACF can't reach them via SKILL.md.
An MCP server solves this: any agent that supports MCP (which is most of them, including Copilot, Cursor, Claude Code, OpenCode) can use ACF's pipeline as tools:
acf_context_load — load project context, return snapshot
acf_stack_audit — audit the GitHub stack, return findings
acf_issue_craft — craft an issue from snapshot + findings
acf_pr_context — build PR context from issue + snapshot
acf_compact — compact a context snapshot
acf_caveman — compress to caveman mode
From 30 years of platform engineering: the winning strategy is to be where the users are, not where you want them to be. The users are on Copilot, Cursor, Claude Code. MCP is the common denominator.
Affected Files
mcp-server/ (new directory) — MCP server implementation
mcp-server/src/index.ts — server entry point (TypeScript, following MCP SDK)
mcp-server/src/tools/ — one file per ACF phase
mcp-server/package.json — dependencies (@modelcontextprotocol/sdk)
mcp-server/README.md — installation and usage
mcp-server/tests/ — server tests
docs/COMPATIBILITY.md — update with MCP server section
Acceptance Criteria
Validation
cd mcp-server && npm install && npm run build
# Server starts and responds to MCP tool calls
# Test with Claude Code: add to .claude/mcp.json, verify tools appear
Complexity
Complex — building an MCP server is a real software project (TypeScript, SDK, tests, distribution). But the logic already exists in the SKILL.md files — the server wraps the same pipeline as tools.
Notes
- This is a Phase 5 (v1.x Expansion) issue — it extends ACF beyond the SKILL.md ecosystem.
- The MCP server should reuse the same skill content (read SKILL.md files for instructions) rather than duplicating logic.
- Consider whether the server should be a separate repo (
acf-mcp-server) or a subdirectory of this repo. Separate repo is cleaner for npm publishing.
- Pin
@modelcontextprotocol/sdk to a specific version (not latest) per security best practices.
- This is the single highest-impact feature for reaching the broader AI coding market.
Summary
ACF is a skill system (SKILL.md files), which means it only works with agents that support the Agent Skills spec. To reach agents that don't support SKILL.md (GitHub Copilot, Aider, Continue, Tabnine, custom agents), we need an MCP server that exposes ACF's pipeline as tools. This would make ACF agent-agnostic in the truest sense.
Context
docs/ROADMAP.md— Phase 5 (v1.x Expansion)Motivation
The Agent Skills spec is gaining adoption (20+ agents), but it's not universal. Major agents that DON'T support SKILL.md:
.github/copilot-instructions.md, no skill system.windsurfrules, no skill system.clinerules, partial skill supportThese agents represent ~40% of the AI coding market. ACF can't reach them via SKILL.md.
An MCP server solves this: any agent that supports MCP (which is most of them, including Copilot, Cursor, Claude Code, OpenCode) can use ACF's pipeline as tools:
acf_context_load— load project context, return snapshotacf_stack_audit— audit the GitHub stack, return findingsacf_issue_craft— craft an issue from snapshot + findingsacf_pr_context— build PR context from issue + snapshotacf_compact— compact a context snapshotacf_caveman— compress to caveman modeFrom 30 years of platform engineering: the winning strategy is to be where the users are, not where you want them to be. The users are on Copilot, Cursor, Claude Code. MCP is the common denominator.
Affected Files
mcp-server/(new directory) — MCP server implementationmcp-server/src/index.ts— server entry point (TypeScript, following MCP SDK)mcp-server/src/tools/— one file per ACF phasemcp-server/package.json— dependencies (@modelcontextprotocol/sdk)mcp-server/README.md— installation and usagemcp-server/tests/— server testsdocs/COMPATIBILITY.md— update with MCP server sectionAcceptance Criteria
mcp-server/using TypeScript and@modelcontextprotocol/sdkacf_context_load(project_path)→ returns context snapshotacf_stack_audit(repo)→ returns stack findingsacf_issue_craft(snapshot, findings, description)→ returns issue draftacf_pr_context(issue, snapshot)→ returns PR draftacf_compact(snapshot)→ returns compacted snapshotacf_caveman(snapshot)→ returns caveman snapshotnpx acf-mcp-serverornode mcp-server/dist/index.js.claude/mcp.json).cursor/mcp.json)config.yaml)mcp-server/README.mdwith installation, configuration, and usage examplesdocs/COMPATIBILITY.mdupdated with MCP server sectionmcp-server/package.jsonwith@modelcontextprotocol/sdkdependency (pinned version, notlatest)mcp-server/tests/with at least basic tool testsValidation
Complexity
Complex — building an MCP server is a real software project (TypeScript, SDK, tests, distribution). But the logic already exists in the SKILL.md files — the server wraps the same pipeline as tools.
Notes
acf-mcp-server) or a subdirectory of this repo. Separate repo is cleaner for npm publishing.@modelcontextprotocol/sdkto a specific version (notlatest) per security best practices.