MCP Abilities - Filesystem
MCP Abilities Filesystem - Add-on for mcp-expose-abilities WordPress plugin
by basicus · github.com/bjornfix/mcp-abilities-filesystem · website
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/bjornfix/mcp-abilities-filesystem/releases/download/v1.0.7/mcp-abilities-filesystem.zipReadme
MCP Abilities - Filesystem
Filesystem abilities for MCP. Read, write, copy, move, and delete files within WordPress. Security-hardened with PHP injection detection.
Tested up to: 7.0 Stable tag: 1.0.9 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html
What It Does
Filesystem abilities for MCP. Read, write, copy, move, and delete files within WordPress. Security-hardened with PHP injection detection.
This plugin is part of the MCP abilities ecosystem. It gives an MCP-capable agent a focused, authenticated way to work with Filesystem work inside WordPress through MCP.
Example: "Handle this WordPress maintenance task directly." - The agent can inspect the site, call the relevant ability, and return the result without making the human click through wp-admin for every step.
The Real Workflow
In practice, the human should not have to memorize every ability name.
The normal pattern is:
- install the base MCP stack
- install only the add-ons the site actually needs
- let the agent discover the available abilities
- give the agent a clear task with boundaries
- verify the result in WordPress
The human's job is mostly to describe the goal. The agent's job is to figure out the mechanics.
Why This Feels Different
Most WordPress automation still leaves the repetitive part to the human.
This plugin is different because the agent can act inside the site through a narrow, authenticated ability surface:
- inspect current site state before changing anything
- run the specific action needed for the task
- return structured results that are easy to verify
- keep the workflow inside WordPress instead of a separate checklist
That changes the experience from:
Here is what you should do in wp-admin
to:
Tell the agent what needs doing, and let it carry out the work
Before vs After
Before
- ask the AI what to do
- copy the answer into WordPress by hand
- click through wp-admin for the repetitive bits
- postpone maintenance because the task is tedious
After
- tell the agent what needs doing
- let it inspect the relevant WordPress state
- let it run the targeted ability
- verify the result and move on
Who It Is For
This is a good fit for:
- agencies managing WordPress sites with AI-assisted maintenance
- operators who want agents to do real WordPress work instead of producing instructions
- teams already using MCP Expose Abilities
- sites where this WordPress area is updated often enough to deserve automation
It is especially useful when the manual version is repetitive enough that important maintenance gets delayed.
Documentation
Start with the main plugin page and base stack documentation:
If you are using an AI agent, the simplest instruction is often just:
Read https://github.com/bjornfix/mcp-expose-abilities and figure out the stack before making changes.
Start Here
If you are new to the stack, use this order:
- Install Abilities API.
- Install MCP Adapter.
- Install MCP Expose Abilities.
- Install MCP Abilities - Filesystem.
- Confirm the new abilities appear in discovery.
- Give the agent a clear task that uses this add-on.
If you skip base-stack verification and start with add-ons immediately, troubleshooting gets harder than it needs to be.
Abilities (11)
| Ability | Description |
|---|---|
filesystem/read-file |
Read file contents (text or binary) |
filesystem/write-file |
Write content to file (PHP blocked) |
filesystem/append-file |
Append content to existing file |
filesystem/delete-file |
Delete file (creates backup first) |
filesystem/delete-directory |
Delete directory (optional recursive delete) |
filesystem/copy-file |
Copy file to new location |
filesystem/move-file |
Move or rename file |
filesystem/list-directory |
List directory contents |
filesystem/create-directory |
Create new directory |
filesystem/file-info |
Get file metadata (size, dates, permissions) |
filesystem/get-changelog |
Get changelog from plugin/theme |
Usage Examples
Read a file
{
"ability_name": "filesystem/read-file",
"parameters": {
"path": "wp-content/plugins/my-plugin/config.json"
}
}
Write a file
{
"ability_name": "filesystem/write-file",
"parameters": {
"path": "wp-content/uploads/data/export.csv",
"content": "name,email\nJohn,john@example.com"
}
}
List directory
{
"ability_name": "filesystem/list-directory",
"parameters": {
"path": "wp-content/uploads/2024/",
"recursive": false
}
}
Delete with backup
{
"ability_name": "filesystem/delete-file",
"parameters": {
"path": "wp-content/uploads/old-file.txt"
}
}
Files are backed up to wp-content/mcp-backups/YYYY-MM-DD/ before deletion.
Security Features
This plugin includes extensive security hardening:
- PHP Injection Detection - Blocks
<?php,<?=, and obfuscated PHP patterns - Encoding Bypass Protection - Detects UTF-7, UTF-16, and Base64 encoded PHP
- Path Traversal Protection - Blocks
../and absolute paths outside WordPress - Directory Restrictions - Limited to the WordPress root directory
- Automatic Backups - Files backed up before deletion
- 50+ Attack Vectors Tested - Comprehensive security testing
Changelog
1.0.7
- Update tested WordPress version metadata for Plugin Check.
- Align public release identity with the Basicus author/contributor rule.
1.0.6
- Docs: expanded the WordPress-standard
readme.txtso the published ZIP now includes fuller requirements, abilities, use cases, and Devenia ecosystem links
1.0.5
- Added:
max_itemslimit for safer recursive directory listing - Added:
returnedandtruncatedoutput fields for list-directory
1.0.3
- Improve log append efficiency for filesystem operations
1.0.2
- Security: Restrict filesystem operations to the WordPress root directory
- Fixed: Use WP_Filesystem for backups and copy operations
1.0.1
- Fixed: Use WP_Filesystem API instead of native PHP functions
- Fixed: Proper sanitization of REMOTE_ADDR
Contributing
PRs welcome. Keep changes focused on the plugin's WordPress ability surface and preserve authenticated, explicit workflows.
License
GPL-2.0+
Author
Links
Star and Share
If this plugin saves you time or makes WordPress maintenance easier to verify, please:
- star the repo
- share it with people running WordPress sites
- point them to the main plugin page so they can see what the ecosystem can actually do
Why do it?
Because agent-friendly open WordPress tooling helps more of the boring but important work get done.
Read the full README on GitHub →