Newspack Lit MCP 翻译为中文是:“Newspack 文字版 MCP(或:Newspack 文本 MCP)”。不过,这里的“Lit”在特定上下文中可能有特定含义,比如在出版或媒体领域可能指“文学版”、“文字版”或类似的意思,但如果没有具体上下文,通常可以简化为“文字版”或根据具体情况调整翻译。而“MCP”可能是一个特定项目、系统或概念的缩写,具体含义需根据上下文确定。在这里,我将其保留为“MCP”以保持原样
Newspack发布与基础设施MCP服务器插件是一个基于Abilities API和MCP适配器构建的WordPress MCP服务器,用于迁移操作。此插件展示了如何创建一个MCP服务器,该服务器能够将WordPress功能作为MCP工具暴露出来。
重要提示: 这个早期版本是一个说明性的概念验证(POC),其传输机制(认证)和功能元素(工具及效果价值)均有待改进。
关键特性
- 两种MCP工具可供选择:
- lit-mcp-read-json-file - 从(某处)读取JSON文件 wp-content/uploads/mcp_data/ - lit-mcp-write-json-file - 将JSON内容写入文件中 wp-content/uploads/mcp_data/ 目录
- 现代WordPress架构:
- 使用能力API进行能力注册和管理 - 使用MCP适配器实现MCP服务器功能 - 使用适当的JSON-RPC处理的REST传输 - 错误处理和可观测性
- 安全:
- 基本HTTP身份验证支持 - WordPress用户权限检查(edit_posts (必填) - 适当的权限验证
- 数据管理:
- 存储在文件中的 wp-content/uploads/mcp_data/ 目录 - 自动创建目录 - JSON验证和格式化美化打印
要求
安装
- 安装依赖项 (通过 WP-CLI):
wp plugin install https://github.com/WordPress/abilities-api/releases/latest/download/abilities-api.zip --activate
wp plugin install https://github.com/WordPress/mcp-adapter/releases/latest/download/mcp-adapter.zip --activate- 安装Lit MCP:
# Clone or copy the plugin to your plugins directory
wp plugin activate lit-mcp- 安装 Composer 依赖项:
cd /path/to/wordpress/wp-content/plugins/lit-mcp
composer installMCP 配置
- Claude 桌面版
将此配置添加到您的MCP设置文件中(~/Library/Application Support/Claude/claude_desktop_config.json (在 macOS 上)。
- Cursor 集成开发环境(IDE)
将此配置添加到您的 .cursor/mcp.json 文件。
注: 更新路径为 mcp-command.php 以匹配您的安装目录。
{
"mcpServers": {
"newspack-lit-mcp": {
"command": "php",
"args": [
"/usr/local/var/www/newspack-ai.test/public/wp-content/plugins/newspack-lit-mcp/mcp-command.php"
]
}
}
}测试服务器可用性
测试MCP服务器有两种方法:
选项1:命令行MCP服务器(推荐用于MCP客户端)
这个(或:该) mcp-command.php 该脚本提供了一个基于标准输入输出(stdio)的MCP服务器,该服务器可与Claude Desktop及其他MCP客户端协同工作。
测试命令行服务器:
# Test initialization
echo '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}},"id":1}' | \
php /usr/local/var/www/newspack-ai.test/public/wp-content/plugins/newspack-lit-mcp/mcp-command.php | jq .
# Test tools list
echo '{"jsonrpc":"2.0","method":"tools/list","params":{},"id":2}' | \
php /usr/local/var/www/newspack-ai.test/public/wp-content/plugins/newspack-lit-mcp/mcp-command.php | jq .
# Test writing a file
echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"lit-mcp-write-json-file","arguments":{"filename":"test.json","content":{"hello":"world"}}},"id":3}' | \
php /usr/local/var/www/newspack-ai.test/public/wp-content/plugins/newspack-lit-mcp/mcp-command.php | jq .
# Test reading a file
echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"lit-mcp-read-json-file","arguments":{"filename":"test.json"}},"id":4}' | \
php /usr/local/var/www/newspack-ai.test/public/wp-content/plugins/newspack-lit-mcp/mcp-command.php | jq .多请求测试:
cat > /tmp/test_mcp.txt << 'EOF'
{"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}},"jsonrpc":"2.0","id":0}
{"method":"notifications/initialized","jsonrpc":"2.0"}
{"method":"tools/list","params":{},"jsonrpc":"2.0","id":1}
{"method":"prompts/list","params":{},"jsonrpc":"2.0","id":2}
{"method":"resources/list","params":{},"jsonrpc":"2.0","id":3}
EOF
php /usr/local/var/www/newspack-ai.test/public/wp-content/plugins/newspack-lit-mcp/mcp-command.php < /tmp/test_mcp.txt | jq .选项2:直接HTTP REST API
您也可以通过向WordPress REST API端点发送HTTP请求,直接与MCP服务器进行交互。 这绕过了命令行服务器,直接访问WordPress REST API端点。
初始化:
curl -k -u admin:pass \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{},"id":1}' \
https://newspack-ai.test/wp-json/lit-mcp/jsonrpc/streamable | \
jq .工具列表:
curl -k -u admin:pass \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"tools/list","params":{},"id":2}' \
https://newspack-ai.test/wp-json/lit-mcp/jsonrpc/streamable | \
jq .写入JSON文件:
curl -k -u admin:pass \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"lit-mcp-write-json-file","arguments":{"filename":"test.json","content":{"message":"Hello World"}}},"id":3}' \
https://newspack-ai.test/wp-json/lit-mcp/jsonrpc/streamable | \
jq .读取JSON文件:
curl -k -u admin:pass \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"lit-mcp-read-json-file","arguments":{"filename":"test.json"}},"id":4}' \
https://newspack-ai.test/wp-json/lit-mcp/jsonrpc/streamable | \
jq .故障排除
- 连接超时:
- 验证WordPress网站是否正在运行且可访问 - 检查URL中的 mcp-command.php 与您的网站相匹配 - 确保凭据(用户名/密码)正确无误 mcp-command.php
- “HTTP请求失败”错误:
- 检查WordPress是否返回了非200的状态码 - 验证基本身份验证凭据 mcp-command.php - 使用curl直接测试REST API终端点
- 401 未授权错误:
- 确保WordPress用户已 edit_posts 能力 - 检查基本身份验证凭据是否正确 - 验证用户是否存在且密码正确
- 404 未找到错误:
- 确保插件已激活 - 检查Abilities API和MCP Adapter插件是否已激活 - 验证URL路径是否正确/wp-json/lit-mcp/jsonrpc/streamable)
- 500 内部服务器错误:
- 检查WordPress调试日志以查找具体错误信息 - 确保 wp-content/uploads/mcp_data/ 目录可写 - 验证所有依赖项都已正确安装
调试信息
- 检查WordPress调试日志:
/wp-content/debug.log - 验证插件激活:
wp plugin list - 能力测试注册:检查能力是否出现在WordPress管理后台
- 手动测试命令行服务器:使用上述“用法”部分中的测试命令
- 检查Claude Desktop日志:
~/Library/Logs/Claude/mcp*.log在 macOS 上
技术细节
建筑学
- WordPress 插件通过“Abilities API”注册能力,并通过MCP适配器暴露它们
- 命令行包装器:
mcp-command.php是一个最小化的标准输入输出(stdio)包装器,它:
- 从标准输入读取JSON-RPC消息(每行一个) - 通过HTTP将它们转发到WordPress REST API - 将响应返回到标准输出(每行一个) - 过滤掉通知中的空响应
- 数据目录文件存储在
wp-content/uploads/mcp_data/ - 文件格式带有格式化打印的JSON文件
- 认证使用WordPress用户验证进行基本HTTP身份验证
- 权限需要
edit_postsWordPress功能 - 交通可流式传输的传输方式(针对MCP客户端,使用stdio包装器的HTTP上的JSON-RPC 2.0)
mcp-command.php 实现
命令包装器的设计有意保持简洁:
- 没有WordPress引导文件避免直接加载WordPress以防止输出污染
- 清洁的stdio协议只有JSON响应会输出到标准输出,其他内容则不会
- 错误抑制禁用所有PHP错误/警告/通知以保持输出整洁
- HTTP代理模式将所有协议逻辑转发到WordPress REST API
- 通知处理过滤掉JSON-RPC通知中的空响应
