WordPress Abilities API
The FRS ecosystem integrates with the WordPress Abilities API (WP 6.9+) for AI assistant integration.
What are Abilities?
Abilities are registered functions that AI assistants can discover and call. They provide:
- Discoverability - AI can list available actions
- Schema Validation - Input/output validation via JSON Schema
- Permission Checks - Capability-based access control
- MCP Compatibility - Works with Model Context Protocol
Ability Categories
User Management
| Ability | Description |
|---|---|
frs-users/list-profiles | Query profiles with filters |
frs-users/get-profile | Get single profile |
frs-users/search-profiles | Full-text search |
Intranet
| Ability | Description |
|---|---|
frs-intranet/search-directory | Search staff directory |
frs-intranet/get-org-chart | Get org hierarchy |
frs-intranet/get-direct-reports | Get user's reports |
frs-intranet/find-colleague | Natural language search |
frs-intranet/get-bookmarks | Get user bookmarks |
frs-intranet/add-bookmark | Add bookmark |
Data Management
| Ability | Description |
|---|---|
frs-modern-data/get-posts | Query posts |
frs-modern-data/get-users | Query users |
frs-modern-data/create-post | Create post |
frs-modern-data/update-post | Update post |
frs-modern-data/bulk-action | Batch operations |
Greenshift (Conditional)
| Ability | Description |
|---|---|
greenshift/create-element | Create block |
greenshift/create-section | Create section |
greenshift/create-query-grid | Create post grid |
greenshift/insert-blocks | Insert into post |
Using Abilities
PHP Registration
php
wp_register_ability('my-plugin/my-action', [
'label' => 'My Action',
'description' => 'Does something useful',
'category' => 'my-category',
'capability' => 'edit_posts',
'input_schema' => [
'type' => 'object',
'properties' => [
'name' => ['type' => 'string']
],
'required' => ['name']
],
'output_schema' => [
'type' => 'object',
'properties' => [
'success' => ['type' => 'boolean']
]
],
'callback' => function($input) {
return ['success' => true];
}
]);Calling via MCP
json
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "frs-intranet/search-directory",
"arguments": {
"search": "John",
"department": "Sales"
}
},
"id": 1
}MCP Protocol
The MCP adapter in frs-wp-modern-data implements:
Methods
| Method | Description |
|---|---|
initialize | Handshake |
tools/list | List abilities |
tools/call | Execute ability |
resources/list | List resources |
resources/read | Read resource |
Resource URIs
wordpress://post/{id}
wordpress://user/{id}
wordpress://page/{id}Example Queries
Find Colleague
User: "Who works in marketing?"
→ frs-intranet/search-directory { department: "Marketing" }Get Org Chart
User: "Show me the org chart"
→ frs-intranet/get-org-chart {}Create Content
User: "Create a new blog post about rates"
→ frs-modern-data/create-post {
title: "Current Rate Update",
content: "...",
status: "draft"
}