Acf Server
FreeNot checkedProduction-ready Model Context Protocol server for safely reading and changing WordPress + ACF Pro structure through ACF Local JSON and explicit WP-CLI synchron
About
Production-ready Model Context Protocol server for safely reading and changing WordPress + ACF Pro structure through ACF Local JSON and explicit WP-CLI synchronization.
README
Production-ready Model Context Protocol server for safely reading and changing WordPress + ACF Pro structure through ACF Local JSON and explicit WP-CLI synchronization.
The server is built for AI agents that need to inspect or propose changes to ACF field groups, custom post types, taxonomies, and options pages without direct database access.
ACF 6.8 also exposes ACF schema and content through the WordPress Abilities API when paired with the MCP Adapter plugin or another MCP server implementation. This project complements that runtime path with a repo-first workflow: Local JSON remains the source of truth, changes are reviewable in git, and WordPress synchronization is explicit.
Features
- TypeScript, Node.js, Zod, Vitest, and
@modelcontextprotocol/sdk. - JSON-first ACF Local JSON repository.
- No direct SQL, no arbitrary PHP, no shell interpolation.
- Automatic backups before mutations.
dryRunsupport for write workflows.- Explicit WP-CLI sync/import/export tools.
- ACF 6.8 runtime-readiness audits for AI access, REST visibility, and location references.
- Simplified creation tools using ACF Abilities-style inputs.
- Read-only Schema.org mapping audits for ACF field metadata.
stdiotransport by default, optional Streamable HTTP for development.- DDEV WordPress fixture configuration.
Install
npm install
npm run build
For local development:
export ACF_MCP_ACF_JSON_DIR="/absolute/path/to/wp-content/themes/my-theme/acf-json"
export ACF_MCP_WP_ROOT="/absolute/path/to/wordpress"
npm run dev
MCP Client Configuration
Example stdio configuration:
{
"mcpServers": {
"acf": {
"command": "node",
"args": ["/absolute/path/to/acf_mcp/dist/server/stdio.js"],
"env": {
"ACF_MCP_ACF_JSON_DIR": "/absolute/path/to/wp-content/themes/my-theme/acf-json",
"ACF_MCP_WP_ROOT": "/absolute/path/to/wordpress"
}
}
}
}
During development, use tsx:
{
"command": "npx",
"args": ["tsx", "/absolute/path/to/acf_mcp/src/server/stdio.ts"]
}
Safety Model
Local JSON is the primary source of truth. Tools that create, update, delete, or apply content models write JSON files only. They do not sync the WordPress database automatically.
Recommended workflow:
- Call a write tool with
dryRun: true. - Review the planned
changes. - Call the same tool with
dryRun: false. - Review git diff for
acf-json. - Call
acf_sync_jsonwithdryRun: true. - Call
acf_sync_jsonwithdryRun: falseonly when ready.
Tools
acf_pingacf_list_field_groupsacf_get_field_groupacf_create_field_groupacf_create_field_group_simpleacf_update_field_groupacf_delete_field_groupacf_validate_field_groupacf_audit_ai_accessacf_validate_runtime_compatibilityacf_audit_schema_mappingsacf_runtime_statusacf_export_jsonacf_import_jsonacf_sync_jsonacf_list_post_typesacf_create_post_typeacf_create_post_type_simpleacf_list_taxonomiesacf_create_taxonomyacf_create_taxonomy_simpleacf_list_options_pagesacf_create_options_pageacf_apply_content_model
See docs/tools.md for schemas and examples. See docs/runtime-compatibility.md for ACF 6.8 Abilities API, MCP Adapter, and Schema.org guidance.
Example: Apply a Content Model
{
"dryRun": true,
"backup": true,
"model": {
"postTypes": [
{
"key": "post_type_product",
"post_type": "product",
"labels": { "name": "Products", "singular_name": "Product" },
"public": true,
"show_in_rest": true
}
],
"taxonomies": [
{
"key": "taxonomy_brand",
"taxonomy": "brand",
"object_type": ["product"],
"labels": { "name": "Brands", "singular_name": "Brand" }
}
],
"optionsPages": [
{
"key": "ui_options_page_theme_settings",
"menu_slug": "theme-settings",
"page_title": "Theme Settings"
}
],
"fieldGroups": [
{
"key": "group_product_details",
"title": "Product Details",
"fields": [
{
"key": "field_product_subtitle",
"label": "Subtitle",
"name": "subtitle",
"type": "text"
}
],
"location": [
[{ "param": "post_type", "operator": "==", "value": "product" }]
]
}
]
}
}
DDEV
This repository includes .ddev/config.yaml for a WordPress fixture in wp/.
ACF Pro is not bundled or redistributed. Install your licensed ACF Pro copy in the fixture when running WordPress integration checks.
See docs/ddev.md.
Development
npm run typecheck
npm run lint
npm test
npm run build
Optional integration tests can be added under tests/integration and gated with:
RUN_DDEV_INTEGRATION=1 npm run test:integration
Project Structure
src/
adapters/
config/
errors/
prompts/
repositories/
resources/
schemas/
server/
services/
tools/
types/
utils/
Explore ACF Pro skill for AI agents
https://github.com/symonbaikov/acf-pro-skill
Contributing
Keep changes small, tested, and backward-compatible. New tools must include:
- Zod input schema.
- Typed structured result.
- Error handling through the shared tool wrapper.
- Tests for success, validation failure, and dry-run behavior when mutating.
License
MIT
Install Acf Server in Claude Desktop, Claude Code & Cursor
unyly install acf-mcp-serverInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add acf-mcp-server -- npx -y github:symonbaikov/acf-mcp-serverFAQ
Is Acf Server MCP free?
Yes, Acf Server MCP is free — one-click install via Unyly at no cost.
Does Acf Server need an API key?
No, Acf Server runs without API keys or environment variables.
Is Acf Server hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Acf Server in Claude Desktop, Claude Code or Cursor?
Open Acf Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Acf Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
