@automattic/mcp-wpcom-remote
Version:
MCP WordPress.com remote proxy server
219 lines (158 loc) • 5.71 kB
Markdown
# MCP WordPress.com Remote
**A Model Context Protocol (MCP) server for seamless WordPress.com integration**
This package wraps [@automattic/mcp-wordpress-remote](https://www.npmjs.com/package/@automattic/mcp-wordpress-remote) with WordPress.com-optimized defaults, making it easy to connect AI assistants like Claude Desktop to WordPress.com sites.
## Features
- **WordPress.com Optimized** - Pre-configured for WordPress.com public API
- **Secure OAuth 2.0 Authentication** - One-click setup with persistent token storage
- **Zero Configuration** - Works out of the box for WordPress.com sites
- **Complete MCP Support** - Tools, resources, prompts, and more
## Quick Start
### Installation
```bash
npm install @automattic/mcp-wpcom-remote
```
### Configuration
Add to your MCP client configuration (e.g., Claude Desktop's `claude_desktop_config.json`):
```json
{
"mcpServers": {
"wordpress.com": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wpcom-remote"]
}
}
}
```
### First Run
1. **Start your MCP client** (Claude Desktop, etc.)
2. **Browser opens automatically** for WordPress.com authorization
3. **Authorize the application** - tokens are stored permanently
4. **Start using WordPress.com features** in your AI assistant
That's it! No additional configuration needed for WordPress.com.
## WordPress.com Defaults
This package automatically configures:
- **API Endpoint**: `https://public-api.wordpress.com/wpcom/v2/mcp/v1`
- **OAuth Client ID**: `121755` (WordPress.com MCP client)
- **OAuth Enabled**: `true` by default
- **Callback Port**: `3000`
- **Config Directory**: `~/.mcp-auth/wpcom-remote-{version}/`
## Advanced Configuration
### Custom Configuration
You can override any default settings using environment variables:
```json
{
"mcpServers": {
"wordpress.com": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wpcom-remote"],
"env": {
"OAUTH_CALLBACK_PORT": "8080",
"LOG_FILE": "/path/to/logfile.log"
}
}
}
}
```
### JWT Token Authentication
For server-to-server authentication:
```json
{
"mcpServers": {
"wordpress.com": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wpcom-remote"],
"env": {
"JWT_TOKEN": "your-jwt-token-here"
}
}
}
}
```
### Custom WordPress.com Endpoint
If you need to use a different WordPress.com endpoint:
```json
{
"mcpServers": {
"wordpress.com": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wpcom-remote"],
"env": {
"WP_API_URL": "https://your-custom-endpoint.com/wpcom/v2/mcp/v1"
}
}
}
}
```
## Environment Variables
| Variable | Default | Description |
| ---------------------- | -------------------------------------------------- | ----------------------------- |
| `WP_API_URL` | `https://public-api.wordpress.com/wpcom/v2/mcp/v1` | WordPress.com API endpoint |
| `OAUTH_ENABLED` | `true` | Enable OAuth authentication |
| `OAUTH_CALLBACK_PORT` | `3000` | OAuth callback port |
| `OAUTH_HOST` | `127.0.0.1` | OAuth callback hostname |
| `WPCOM_CLIENT_ID` | `121755` | WordPress.com OAuth client ID |
| `WPCOM_MCP_CONFIG_DIR` | `~/.mcp-auth` | Config directory override |
| `JWT_TOKEN` | _(none)_ | JWT token for authentication |
| `LOG_FILE` | _(none)_ | Log file path |
## Development Mode
For development and testing, you can use the local repository:
### Setup
1. **Clone the repository:**
```bash
git clone https://github.a8c.com/Automattic/mcp-wpcom-remote.git
cd mcp-wpcom-remote
```
2. **Install dependencies:**
```bash
npm install
```
3. **Build the project:**
```bash
npm run build
```
### Configuration
Configure your MCP client to use the local version:
```json
{
"mcpServers": {
"wordpress.com": {
"command": "node",
"args": ["/path/to/your/mcp-wpcom-remote/dist/proxy.js"]
}
}
}
```
## Troubleshooting
### OAuth Issues
**Browser doesn't open:**
- Check if port 3000 is available
- Try a different port with `OAUTH_CALLBACK_PORT`
**Authorization fails:**
- Verify WordPress.com account permissions
- Try clearing tokens: `rm -rf ~/.mcp-auth/wpcom-remote-*/`
### Port Conflicts
If port 3000 is already in use:
```json
{
"env": {
"OAUTH_CALLBACK_PORT": "8080"
}
}
```
## What's Different from mcp-wordpress-remote
This package (`mcp-wpcom-remote`) is a WordPress.com-optimized wrapper that:
- **Pre-configures WordPress.com API endpoint**
- **Uses WordPress.com OAuth client ID by default**
- **Enables OAuth by default** (vs disabled in the generic package)
- **Uses wpcom-specific config directory** for token isolation
- **Integrates logging** from the underlying package for consistent log formatting
For self-hosted WordPress sites, use [@automattic/mcp-wordpress-remote](https://www.npmjs.com/package/@automattic/mcp-wordpress-remote) directly.
## Requirements
- **Node.js 22+** (inherited from underlying package)
- **WordPress.com account** (for OAuth authentication)
## License
GPL v2 or later
## Contributing
Contributions welcome! This project is maintained by Automattic Inc.
---
**Need help?** Check the [troubleshooting section](#troubleshooting) or open an issue.