wso2-api-platform-mcp
v1.0.0
Published
Claude Desktop Extension for WSO2 API Platform — manage APIs, gateways, deployments, and more through natural language
Maintainers
Readme
WSO2 API Platform — MCP Desktop Extension
A Claude Desktop Extension (MCP) that connects Claude to your self-hosted WSO2 API Platform instance, enabling natural language management of APIs, gateways, deployments, and more.
What This Does
This extension exposes 90 tools across 17 categories from the WSO2 API Platform, allowing Claude Desktop users to:
| Category | Tools | Description | |---|---|---| | Organizations | 3 | Get org details, register new orgs, check subscriptions | | Projects | 5 | Full CRUD for project containers | | REST APIs | 7 | Create, update, delete APIs + validation + gateway association | | API Deployments | 6 | Deploy, undeploy, restore, and manage deployment artifacts | | API Publications | 4 | Publish/unpublish APIs to developer portals | | Gateways | 8 | Gateway CRUD + status, artifacts, and manifest | | Gateway Tokens | 3 | List, rotate, and revoke gateway authentication tokens | | Applications | 5 | Consumer application CRUD | | Subscriptions | 5 | API subscription management with filters | | Subscription Plans | 5 | Throttling, quota, and billing plan management | | DevPortals | 8 | Developer portal CRUD + activate/deactivate | | MCP Proxies | 6 | MCP server proxy CRUD + remote server info fetch | | MCP Deployments | 6 | Deploy/undeploy MCP proxies to gateways | | LLM Templates | 5 | AI model provider template management | | LLM Providers | 6 | LLM provider instance management | | LLM Proxies | 5 | AI model proxy management | | Custom Policies | 3 | Gateway custom policy management |
Prerequisites
- Claude Desktop (Pro, Max, Team, or Enterprise plan)
- A running WSO2 API Platform instance
- Network access from your machine to the WSO2 instance
- Node.js 18+
Quick Start
1. Clone and Install
git clone https://github.com/Kavirubc/api-platform-mcp.git
cd api-platform-mcp
pnpm install2. Configure Environment
cp .env.example .envEdit .env with your WSO2 instance details:
# Required: Your WSO2 API Platform URL
WSO2_BASE_URL=https://your-wso2-instance:9243
# Option A: Pre-obtained JWT token
WSO2_TOKEN=eyJhbGciOiJSUzI1NiIs...
# Option B: OAuth2 client credentials (auto-refreshes tokens)
WSO2_CLIENT_ID=your-client-id
WSO2_CLIENT_SECRET=your-client-secret
# For self-signed certificates (development)
WSO2_VERIFY_SSL=false3. Add to Claude Desktop
Add this to your Claude Desktop MCP configuration (claude_desktop_config.json):
{
"mcpServers": {
"wso2-api-platform": {
"command": "node",
"args": ["/absolute/path/to/api-platform-mcp/index.js"],
"env": {
"WSO2_BASE_URL": "https://your-wso2-instance:9243",
"WSO2_TOKEN": "your-jwt-token",
"WSO2_VERIFY_SSL": "false"
}
}
}
}4. Restart Claude Desktop
After updating the config, restart Claude Desktop. You should see "WSO2 API Platform" in the connected tools.
Authentication
The extension supports two authentication methods:
Option A: Pre-obtained JWT Token (Simplest)
- Obtain a JWT token from your WSO2 Thunder STS (via the sample app at
https://localhost:3000or the OAuth2 flow) - Set
WSO2_TOKENto the access token value - You are responsible for refreshing the token when it expires
Option B: OAuth2 Client Credentials (Recommended for Production)
- Register an OAuth2 application from the Thunder STS
kickstart.shscript - Set
WSO2_CLIENT_IDandWSO2_CLIENT_SECRETfrom the registration output - The extension will automatically acquire and refresh tokens
Note: The JWT must contain an
organizationclaim (UUID). All API operations are automatically scoped to this organization — no separate org ID is needed in requests.
Example Prompts
Once connected, try these with Claude:
"List all my projects"
"Create a new project called 'Payments' with handle 'payments-v2'"
"Show me all APIs in the payments project"
"Create a REST API called 'Payment Gateway' with context '/payments' and version 'v1.0.0' in project {projectId}"
"Deploy the payment API to gateway {gatewayId}"
"What gateways are registered and what's their connection status?"
"List all MCP proxies in my project"
"Show me the subscription plans available"
"Publish the payments API to the default developer portal"Architecture
api-platform-mcp/
├── index.js # MCP server entry point (stdio transport)
├── src/
│ ├── client.js # WSO2 API client (auth, HTTP, SSL)
│ ├── utils.js # Shared helpers (formatting, validation)
│ └── tools/ # 17 tool modules
│ ├── organizations.js
│ ├── projects.js
│ ├── apis.js
│ ├── api-deployments.js
│ ├── api-publications.js
│ ├── gateways.js
│ ├── gateway-tokens.js
│ ├── applications.js
│ ├── subscriptions.js
│ ├── subscription-plans.js
│ ├── devportals.js
│ ├── mcp-proxies.js
│ ├── mcp-deployments.js
│ ├── llm-templates.js
│ ├── llm-providers.js
│ ├── llm-proxies.js
│ └── custom-policies.js
├── manifest.json # MCPB Desktop Extension manifest
├── package.json
├── .env.example
└── docs/
└── DesignProposal.md # Full design & API surface analysisDevelopment
# Run with --help to see available tools count
node index.js --help
# Test locally (will wait for MCP protocol on stdin)
WSO2_BASE_URL=https://localhost:9243 WSO2_TOKEN=your-token node index.jsSelf-signed Certificates
For development environments with self-signed certificates, set:
WSO2_VERIFY_SSL=falseDocumentation
- Design Proposal — Complete API surface analysis, tool design, and architecture decisions
License
MIT
