acf-mcp-server
Allows AI agents to inspect and modify ACF field groups, custom post types, taxonomies, and options pages within a WordPress site using ACF Local JSON and WP-CLI synchronization, without direct database access.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@acf-mcp-serverlist all ACF field groups"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ACF MCP Server
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.
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.
stdiotransport by default, optional Streamable HTTP for development.DDEV WordPress fixture configuration.
Related MCP server: WordPress Standalone MCP Server
Install
npm install
npm run buildFor 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 devMCP 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_update_field_groupacf_delete_field_groupacf_validate_field_groupacf_export_jsonacf_import_jsonacf_sync_jsonacf_list_post_typesacf_create_post_typeacf_list_taxonomiesacf_create_taxonomyacf_list_options_pagesacf_create_options_pageacf_apply_content_model
See docs/tools.md for schemas and examples.
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 buildOptional integration tests can be added under tests/integration and gated with:
RUN_DDEV_INTEGRATION=1 npm run test:integrationProject Structure
src/
adapters/
config/
errors/
prompts/
repositories/
resources/
schemas/
server/
services/
tools/
types/
utils/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
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/symonbaikov/acf-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server