Lightweight WordPress MCP server - 42 tools, token-optimized (95% smaller responses)
About
Lightweight WordPress MCP server - 42 tools, token-optimized (95% smaller responses)
Security Report
Valid MCP server (4 strong, 5 medium validity signals). 3 known CVEs in dependencies (0 critical, 3 high severity) Package registry verified. Imported from the Official MCP Registry. Trust signals: trusted author (3/3 approved).
5 files analyzed · 4 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
What You'll Need
Set these up before or after installing:
Environment variable: WORDPRESS_SITE_URL
Environment variable: WORDPRESS_USERNAME
Environment variable: WORDPRESS_PASSWORD
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-cvrt-jh-wordpress-mcp": {
"env": {
"WORDPRESS_PASSWORD": "your-wordpress-password-here",
"WORDPRESS_SITE_URL": "your-wordpress-site-url-here",
"WORDPRESS_USERNAME": "your-wordpress-username-here"
},
"args": [
"-y",
"@cavort-it-systems/wordpress-mcp"
],
"command": "npx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
wordpress-mcp
Lightweight WordPress MCP server for site management. 266 tools with token-optimized responses - REST API responses automatically slimmed from kilobytes to essentials.
v3.5: fields_* (12 tools) for cvrt-fields 0.1.2+ - status, settings, field types, location values, schemas and CRUD + JSON sync for field groups, post types, taxonomies and options pages.
v3.4: cvrt-legal 0.9.0 - markup repair switches (repairs on legal_put_accessibility) and report (legal_get_accessibility_report / legal_reset_accessibility_report), document type barrierefreiheit.
v3.3: every cvrt-legal admin route is a tool - generator (legal_*_generator*, library import from a local file), Impressum facts, social-media section, settings, and the self-hosted accessibility tool (legal_get_accessibility / legal_put_accessibility, cvrt-legal 0.8.0+).
v3.2: legal_consent_log_get / legal_consent_log_stats / legal_consent_log_export for the cvrt-legal consent decision log (needs cvrt-legal 0.5.0+); legal_put_consent takes log_enabled.
v3.1: Tools for our own plugins - seo_* (31) for cvrt-seo-manager, legal_* (15) for cvrt-legal incl. legal_link_page (cvrt-legal 0.4.2+), and fulfillment_* (8) for cvrt-order-fulfillment.
v3.0 (BREAKING): Multi-site - one server instance manages any number of sites via a single WORDPRESS_SITES env var. Every tool now requires a site argument; use the new list_sites tool to discover configured ids. The old single-site env vars are removed. wp_activate_plugin / wp_deactivate_plugin / wp_delete_plugin now use cvrt-mcp-endpoints mcp/v1 routes and take the plugin file path (e.g. akismet/akismet.php) instead of a slug.
v2.1: Now includes Pro modules for ACF and WooCommerce via wp-pilot-pro.
v2.0: Extended tools for the cvrt-mcp-endpoints plugin - install plugins/themes from WordPress.org, database management, full widget/menu control, and more.
Why This Server?
WordPress REST API returns extremely verbose JSON (~5-10KB per post). This server strips it down:
| Response | Before | After | Reduction |
|---|---|---|---|
wp_list_posts (10 posts) | ~50KB | ~2KB | 96% |
wp_get_post | ~5KB | ~200 bytes | 96% |
wp_list_plugins | ~15KB | ~800 bytes | 95% |
Less tokens = faster responses, lower costs, more context for your AI.
Installation
npm install -g @cavort-it-systems/wordpress-mcp
Or run directly:
npx @cavort-it-systems/wordpress-mcp
Configuration
v3.0 is multi-site (BREAKING CHANGE). A single server instance now manages any number of WordPress sites, defined in one WORDPRESS_SITES env var as a JSON array of {id, url, username, password} objects. The old single-site env vars (WORDPRESS_SITE_URL, WORDPRESS_USERNAME, WORDPRESS_PASSWORD) are no longer read - set WORDPRESS_SITES instead.
Every tool (except list_sites) now requires a site argument naming the target site id. Call list_sites first to discover which ids are configured - it returns {id, url} for each site (passwords are never returned or logged).
Claude Desktop / Manual
Add to your MCP config (~/.claude.json or Claude Desktop settings):
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": ["@cavort-it-systems/wordpress-mcp"],
"env": {
"WORDPRESS_SITES": "[{\"id\":\"boardcouture\",\"url\":\"https://boardcouture.shop\",\"username\":\"cavortkonzepte\",\"password\":\"xxxx xxxx xxxx\"}]"
}
}
}
}
Add more sites by appending objects to the WORDPRESS_SITES array - one server instance handles them all.
Claude Code CLI
claude mcp add wordpress \
-e WORDPRESS_SITES='[{"id":"boardcouture","url":"https://boardcouture.shop","username":"cavortkonzepte","password":"xxxx xxxx xxxx"}]' \
-- npx @cavort-it-systems/wordpress-mcp
From Source
git clone https://github.com/cvrt-jh/wordpress-mcp.git
cd wordpress-mcp
npm install && npm run build
Authentication
Uses Application Passwords (WordPress 5.6+):
- Go to Users → Profile in WordPress admin
- Scroll to Application Passwords
- Create new password for "Claude MCP"
- Use the generated password (keep the spaces)
Response Slimming
All responses are automatically trimmed. Example:
wp_get_post - from ~5KB to ~200 bytes:
// Before (WordPress REST API raw)
{"id":123,"date":"2026-01-15T10:30:00","date_gmt":"2026-01-15T09:30:00",
"guid":{"rendered":"https://example.com/?p=123"},"modified":"2026-01-20T14:00:00",
"modified_gmt":"2026-01-20T13:00:00","slug":"my-post","status":"publish",
"type":"post","link":"https://example.com/my-post/","title":{"rendered":"My Post"},
"content":{"rendered":"<p>Full content...</p>","protected":false},
"excerpt":{"rendered":"<p>Excerpt...</p>","protected":false},
"author":1,"featured_media":456,"comment_status":"open","ping_status":"open",
"sticky":false,"template":"","format":"standard","meta":{"footnotes":""},
"categories":[1,5],"tags":[10,20],"class_list":["post-123","type-post",...],
"_links":{"self":[...],"collection":[...],"about":[...],...}}
// After (slimmed)
{"id":123,"title":"My Post","slug":"my-post","status":"publish",
"date":"2026-01-15T10:30:00","modified":"2026-01-20T14:00:00",
"link":"https://example.com/my-post/","excerpt":"Excerpt...",
"author":1,"categories":[1,5],"tags":[10,20],"featured_media":456}
What gets stripped:
| Field | Where | Why |
|---|---|---|
guid, _links | everywhere | Internal WordPress data |
content.rendered | lists | Only included when explicitly requested |
meta, class_list | posts/pages | Theme/plugin metadata |
ping_status, comment_status | posts | Rarely needed |
template, format, sticky | posts | Theme-specific |
| HTML tags | excerpts | Clean text output |
| Pretty-print JSON | all | Compact single-line output |
Tools (314)
Every tool below requires a site argument (the id from your WORDPRESS_SITES config), except list_sites itself.
Sites (1)
list_sites- List configured site ids and URLs (nositeargument; passwords never returned)
Standard WordPress REST API (42 tools)
These work with any WordPress site:
Site (4)
wp_site_info- Get site name, description, URLwp_get_settings- Get site settingswp_update_settings- Update site settingswp_get_namespaces- List REST API namespaces
Posts (6)
wp_list_posts- List posts with filterswp_get_post- Get single postwp_create_post- Create postwp_update_post- Update postwp_delete_post- Delete postwp_search_posts- Search posts
Pages (5)
wp_list_pages- List pageswp_get_page- Get single pagewp_create_page- Create pagewp_update_page- Update pagewp_delete_page- Delete page
Users (6)
wp_list_users- List userswp_me- Get current userwp_get_user- Get user by IDwp_create_user- Create userwp_update_user- Update userwp_delete_user- Delete user
Plugins (5)
wp_list_plugins- List pluginswp_get_plugin- Get plugin detailswp_activate_plugin- Activate plugin (mcp/v1;pluginis the file path, e.g.akismet/akismet.php)wp_deactivate_plugin- Deactivate plugin (mcp/v1;pluginis the file path)wp_delete_plugin- Delete plugin (mcp/v1;pluginis the file path)
Themes (4)
wp_list_themes- List themeswp_get_active_theme- Get active themewp_get_theme- Get theme detailswp_activate_theme- Switch themes
Media (4)
wp_list_media- List media librarywp_get_media- Get media itemwp_update_media- Update media metadatawp_delete_media- Delete media
Categories & Tags (8)
wp_list_categories- List categorieswp_create_category- Create categorywp_update_category- Update categorywp_delete_category- Delete categorywp_list_tags- List tagswp_create_tag- Create tagwp_update_tag- Update tagwp_delete_tag- Delete tag
Comments (6)
wp_list_comments- List commentswp_get_comment- Get commentwp_create_comment- Create commentwp_update_comment- Update/moderate commentwp_delete_comment- Delete commentwp_moderate_comments- Batch moderate
Extended Tools (43 tools) - Requires cvrt-mcp-endpoints plugin
These require the cvrt-mcp-endpoints WordPress plugin to be installed and activated.
Plugin Management (4)
mcp_search_plugins- Search WordPress.org pluginsmcp_install_plugin- Install plugin from WordPress.orgmcp_update_plugin- Update single plugin (refreshchecks first, incl. GitHub/PUC plugins)mcp_check_plugin_updates- Run Plugin Update Checker and wp.org checks now, list updatesmcp_update_all_plugins- Update all plugins
Theme Management (5)
mcp_search_themes- Search WordPress.org themesmcp_install_theme- Install theme from WordPress.orgmcp_update_theme- Update single thememcp_update_all_themes- Update all themesmcp_delete_theme- Delete inactive theme
Core Management (6)
mcp_get_version- Get WordPress version infomcp_get_system_info- Get comprehensive system infomcp_check_updates- Check for all updatesmcp_update_core- Update WordPress coremcp_flush_rewrite- Flush rewrite rulesmcp_flush_cache- Flush object cache and transients (not a page cache in front of WordPress)
Database Management (5)
mcp_get_tables- List tables with sizesmcp_search_replace- Search/replace in databasemcp_optimize_tables- Optimize all tablesmcp_clean_revisions- Delete old revisionsmcp_clean_comments- Delete spam/trash comments
Options Management (5)
mcp_list_options- List options with prefix filtermcp_get_option- Get single optionmcp_set_option- Create/update optionmcp_delete_option- Delete optionmcp_bulk_get_options- Get multiple options
Menu Management (8)
mcp_list_menus- List navigation menusmcp_get_menu_locations- Get theme locationsmcp_get_menu- Get menu with itemsmcp_create_menu- Create menumcp_delete_menu- Delete menumcp_add_menu_item- Add menu itemmcp_delete_menu_item- Delete menu itemmcp_assign_menu_location- Assign menu to location
Widget Management (8)
mcp_list_sidebars- List all sidebarsmcp_get_sidebar_widgets- Get sidebar widgetsmcp_list_widget_types- List widget typesmcp_get_widget- Get widget detailsmcp_add_widget- Add widget to sidebarmcp_update_widget- Update widget settingsmcp_delete_widget- Remove widgetmcp_move_widget- Move widget to sidebar
Health & Diagnostics (6)
mcp_get_health- Site health scoremcp_get_debug_info- Debug informationmcp_get_php_info- PHP configurationmcp_get_plugins_health- Plugin health/updatesmcp_get_cron_status- Cron jobs statusmcp_run_cron- Run a cron event now (rescheduled/unscheduled likewp cron event run)mcp_get_action_scheduler- Action Scheduler counts, past-due and recent failuresmcp_run_action_scheduler- Run due Action Scheduler actions now (1-50, optional hook/group)mcp_scan_uploads- Executable files under uploads (sha256, benign flag)mcp_get_audit_log- Audit trail of state-changing MCP calls
ACF Module (31 tools) - Requires wp-pilot-pro + ACF
Requires wp-pilot-pro and Advanced Custom Fields.
Field Groups (4)
acf_list_field_groups- List all field groupsacf_get_field_group- Get field group with schemaacf_export_field_groups- Export as JSONacf_import_field_groups- Import from JSON
Post Fields (4)
acf_get_post_fields- Get all fields for postacf_update_post_fields- Update multiple fieldsacf_get_post_field- Get single field valueacf_update_post_field- Update single field
Term & User Fields (4)
acf_get_term_fields- Get term ACF fieldsacf_update_term_fields- Update term fieldsacf_get_user_fields- Get user ACF fieldsacf_update_user_fields- Update user fields
Options Pages (3)
acf_list_options_pages- List options pagesacf_get_options_fields- Get options page fieldsacf_update_options_fields- Update options fields
Repeater Fields (5)
acf_get_repeater- Get repeater rowsacf_add_repeater_row- Add rowacf_update_repeater_row- Update rowacf_delete_repeater_row- Delete rowacf_reorder_repeater- Reorder rows
Flexible Content (5)
acf_get_flexible- Get layoutsacf_add_flexible_layout- Add layoutacf_update_flexible_layout- Update layoutacf_delete_flexible_layout- Delete layoutacf_reorder_flexible- Reorder layouts
Relationship Fields (4)
acf_get_relationship- Get related postsacf_set_relationship- Set related postsacf_add_to_relationship- Add postsacf_remove_from_relationship- Remove posts
Utility (2)
acf_get_clone_references- Get clone field refsacf_get_field_object- Get field schema
WooCommerce Module (42 tools) - Requires wp-pilot-pro + WooCommerce
Requires wp-pilot-pro and WooCommerce.
Products (5)
woo_list_products- List products with filterswoo_get_product- Get product detailswoo_create_product- Create productwoo_update_product- Update productwoo_delete_product- Delete product
Variations (4)
woo_list_variations- List product variationswoo_create_variation- Create variationwoo_update_variation- Update variationwoo_delete_variation- Delete variation
Attributes (4)
woo_list_attributes- List attributeswoo_list_attribute_terms- List attribute termswoo_create_attribute- Create attributewoo_create_attribute_term- Create term
Categories & Tags (5)
woo_list_categories- List product categorieswoo_create_category- Create categorywoo_update_category- Update categorywoo_delete_category- Delete categorywoo_list_tags- List product tags
Orders (5)
woo_list_orders- List orderswoo_get_order- Get order detailswoo_update_order_status- Update statuswoo_add_order_note- Add notewoo_get_order_notes- Get notes
Customers (5)
woo_list_customers- List customerswoo_get_customer- Get customerwoo_create_customer- Create customerwoo_update_customer- Update customerwoo_get_customer_orders- Get order history
Coupons (5)
woo_list_coupons- List couponswoo_get_coupon- Get couponwoo_create_coupon- Create couponwoo_update_coupon- Update couponwoo_delete_coupon- Delete coupon
Reports (3)
woo_sales_report- Sales reportwoo_top_sellers- Top selling productswoo_stock_report- Stock status report
Product Meta & Inventory (3)
woo_get_product_meta- Get product metawoo_update_product_meta- Update product metawoo_bulk_update_stock- Bulk stock update
SEO Module (31 tools) - Requires cvrt-seo-manager
seo_status- Get cvrt-seo-manager status (version, configured, dependencies)seo_get_settings- Get cvrt-seo-manager settingsseo_update_settings- Update cvrt-seo-manager settingsseo_get_post_seo- Get the SEO meta for a postseo_update_post_seo- Update the SEO meta for a postseo_delete_post_seo- Delete (reset) the SEO meta for a postseo_get_post_analysis- Get the SEO analysis (score, issues) for a postseo_list_posts_seo- List SEO meta across postsseo_bulk_update_posts_seo- Bulk update SEO meta across multiple postsseo_get_term_seo- Get the SEO meta for a taxonomy termseo_update_term_seo- Update the SEO meta for a taxonomy termseo_delete_term_seo- Delete (reset) the SEO meta for a taxonomy termseo_keyword_check- Run the keyword analysis checkseo_list_redirects- List all redirectsseo_create_redirect- Create a redirectseo_get_redirect- Get a redirect by idseo_update_redirect- Update a redirect by idseo_delete_redirect- Delete a redirect by idseo_list_monitor_log- List the 404/redirect monitor log entriesseo_clear_monitor_log- Clear the 404/redirect monitor logseo_create_redirect_from_log- Create a redirect directly from a monitor log entryseo_sitemap_status- Get sitemap statusseo_sitemap_ping- Ping search engines with the sitemapseo_indexnow_ping- Submit URLs to IndexNowseo_export_settings- Export cvrt-seo-manager settingsseo_import_settings- Import cvrt-seo-manager settingsseo_export_csv- Export post SEO meta as CSVseo_import_csv- Import post SEO meta from CSVseo_export_redirects- Export redirectsseo_import_redirects- Import redirectsseo_import_migrate- Run a migration import (e.g
Legal Module (34 tools) - Requires cvrt-legal (legal_get_page / legal_link_page need 0.4.2+, legal_consent_log_* 0.5.0+, social 0.6.0+, generator and facts 0.7.0+, accessibility 0.8.0+)
legal_status- Legal document status for a site: which documents are required, filled and published, plus a single compliant flaglegal_list_documents- List all legal document types with their required/filled state and linked pagelegal_get_document- Get one legal document including its ordered sectionslegal_put_document- Replace a legal documentlegal_render_document- Render a document to normalized HTML without savinglegal_get_page- Get which page a legal document is linked to: linked, page_id, the page's post status, and ok (linked AND published)legal_link_page- Link a legal document to its WordPress page (post type page only; posts and products are refused)legal_add_section- Append a section to a legal documentlegal_update_section- Update a sectionlegal_delete_section- Delete a section from a legal documentlegal_get_consent- Get the cookie consent banner configurationlegal_put_consent- Configure the consent banner and every tracking credential the site useslegal_get_theme- Get the banner theme: preset name, CSS custom property overrides and the rendered CSSlegal_put_theme- Set the banner theme preset and/or individual CSS custom propertieslegal_get_settings- Get cvrt-legal settingslegal_consent_log_get- Get every logged consent decision for one consent_idlegal_consent_log_stats- Aggregate consent decision counts by action and banner_version over a day rangelegal_consent_log_export- Export the raw consent decision log as CSV for a day rangelegal_update_settings- Set the GitHub update token (write-only) and the required-document overridelegal_get_facts/legal_put_facts- Impressum fields the generator fills into Impressum and Datenschutz (merge)legal_get_generator/legal_put_generator- Selection of a generated document (modules, options, kept sections); a PUT regenerates itlegal_get_generator_library/legal_put_generator_library- The imported text library; import inline or vialibrary_file(local.json)legal_restore_generator- Restore the document as it was before the generator first wrote itlegal_get_social/legal_put_social- Social-media section: networks and profile URLslegal_get_social_modules/legal_put_social_modules- The social-media text modules (inline ormodules_file)legal_get_accessibility/legal_put_accessibility- The self-hosted accessibility tool (replaces the Ally widget, no third-party request);repairsswitches the markup repair rules (0.9.0+)legal_get_accessibility_report/legal_reset_accessibility_report- What the markup repair fixed and what is still open, per page (0.9.0+)
Fields Module (12 tools) - Requires cvrt-fields 0.1.2+
fields_status- Plugin version, definition counts, ACF / Elementor presence, JSON sync statefields_get_settings/fields_update_settings- Update token (masked as{ set }, write-only, stored encrypted) and JSON sync pathfields_list_types- Available field typesfields_get_location_values- Values for location rulesfields_get_schema- Editor form schema of a definition kindfields_list_definitions/fields_get_definition/fields_create_definition/fields_update_definition/fields_delete_definition- CRUD forgroups,post-types,taxonomies,options-pagesfields_sync_definition- Copy a JSON-sourced definition into the database
Order Fulfillment Module (8 tools) - Requires cvrt-order-fulfillment 0.2.0+
fulfillment_get_settings- Get the cvrt-order-fulfillment plugin settingsfulfillment_update_settings- Update cvrt-order-fulfillment settingsfulfillment_status- Pipeline health: which credentials are set, ClickUp list/assignee, when the print agent last polled, and print-queue countsfulfillment_queue- Print-queue state: status counts (pending/printing/printed/failed) and the recent jobs with their errorsfulfillment_reprint_job- Reset a print job to pending so the agent prints it againfulfillment_fulfill_order- Manually (force) run fulfillment for an order: renders the packing slip, creates the ClickUp task, notifies Slackfulfillment_update_check- Force an immediate plugin-update check (bypassing PUC's throttle) and report whether a newer version is available
Architecture
src/
index.ts # Entry: McpServer + StdioServerTransport
client.ts # WordPress REST API client (Basic Auth)
types.ts # Shared Zod schemas + jsonResult helper
slim.ts # Response slimming transformers
tools/
# Standard WP REST API (wp/v2)
site.ts # 4 tools
posts.ts # 6 tools
pages.ts # 5 tools
users.ts # 6 tools
plugins.ts # 5 tools
themes.ts # 4 tools
media.ts # 4 tools
taxonomies.ts # 8 tools (categories + tags)
comments.ts # 6 tools
# Extended (mcp/v1) - requires cvrt-mcp-endpoints plugin
mcp-plugins.ts # 4 tools - install from WordPress.org
mcp-themes.ts # 5 tools - install from WordPress.org
mcp-core.ts # 6 tools - updates, cache flush
mcp-database.ts # 5 tools - search-replace, optimize
mcp-options.ts # 5 tools - full options CRUD
mcp-menus.ts # 8 tools - navigation menus
mcp-widgets.ts # 8 tools - sidebar widgets
mcp-health.ts # 6 tools - diagnostics, cron
# Pro modules (mcp/v1) - requires wp-pilot-pro
mcp-acf.ts # 31 tools - ACF integration
mcp-woo.ts # 42 tools - WooCommerce
Fort Tools (Bearfort)
For sites hosted on Bearfort, fort_* tools reach the worker through the Bearfort API:
backups (fort_backup_create, fort_backup_list, fort_job_get), page-cache purge
(fort_cache_purge) and server logs (fort_logs_read: access, error, php, wp-cron, with
lines, grep, since). Set BEARFORT_API_KEY (admin key) and optionally
BEARFORT_API_URL; without the key these tools refuse to run. The fort is resolved from the
site URL. Restore is not exposed.
Stripe and Payments
stripe_* tools (cvrt-mcp-endpoints 1.17.0+) read the Stripe account behind the WooCommerce
Stripe Gateway through the site itself: the key never leaves WordPress and results are
whitelisted. Writes (stripe_recreate_webhook, stripe_set_payment_method) need
confirm: true and are audit-logged on the site. woo_gateway_status shows which gateways a
customer from a given country gets. Express checkout and where Stripe.js loads belong to
cvrt-woo-helper (woo_helper_*).
Secret Masking
Every tool result passes through src/mask.ts before it reaches the model. Values under
secret-looking keys (token, secret, password, api_key, whsec, signing_key, ...)
and credential-shaped values (sk_live_, whsec_, GitHub/Slack/AWS tokens, PEM blocks)
become [masked], recursively and inside JSON strings. Flag values (yes, 0, empty)
stay visible so "not set" is still readable. Writing a secret works; it is never read back.
The same rules run server-side in cvrt-mcp-endpoints 1.15.0+.
Multi-Site Support
One server instance manages all your sites via the WORDPRESS_SITES env var (see Configuration). Call list_sites to see configured ids, then pass site: "<id>" to any other tool:
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": ["@cavort-it-systems/wordpress-mcp"],
"env": {
"WORDPRESS_SITES": "[{\"id\":\"site1\",\"url\":\"https://site1.com\",\"username\":\"admin\",\"password\":\"xxxx xxxx xxxx xxxx\"},{\"id\":\"site2\",\"url\":\"https://site2.com\",\"username\":\"admin\",\"password\":\"yyyy yyyy yyyy yyyy\"}]"
}
}
}
}
License
MIT
Reviews
No reviews yet
Be the first to review this server!
More Content & Media MCP Servers
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
FinAgent
Freeby mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.
by Lharries · Communication
Read, search, and send WhatsApp messages through your AI assistant
Memory
Freeby Modelcontextprotocol · Productivity
Knowledge graph-based persistent memory across sessions