A production-grade Model Context Protocol (MCP) server focused on local API service setup, project integration, API testing, external service connectivity, and integration mapping.
This MCP server enables AI agents to:
- Test API endpoints with support for all HTTP methods
- Manage API project configurations with templates and authentication
- Connect to external services with connection testing and monitoring
- Map data between integrations for transformation workflows
- Generate API services with Express, Fastify, or Hono templates
- Run local API servers with smoke testing and health verification
src/
├── server/ # MCP server entry point and bootstrap
├── tools/ # MCP tool implementations
├── prompts/ # MCP prompt definitions
├── resources/ # MCP resource definitions
├── adapters/ # HTTP and OpenAPI adapters
├── templates/ # API project templates
└── core/ # Shared types, config, and utilities
Test individual endpoints or run batch tests:
// Single endpoint test
await test_endpoint({
url: "https://api.example.com/users",
method: "GET",
headers: { "Authorization": "Bearer token" }
});
// Batch testing
await test_batch_endpoints({
endpoints: [
{ url: "https://api.example.com/health", method: "GET" },
{ url: "https://api.example.com/users", method: "POST", body: { name: "Test" } }
]
});Create and manage API project configurations:
// Create from template
await generate_template_project({
template: "rest-api",
name: "my-api",
baseUrl: "http://localhost:3000/api"
});
// Custom configuration
await create_project_config({
name: "my-api",
baseUrl: "https://api.example.com",
auth: { type: "bearer", token: "secret" },
endpoints: [
{ id: "list", name: "List Users", url: "{{baseUrl}}/users", method: "GET" }
]
});Register and monitor external API connections:
await connect_external_service({
name: "stripe-api",
type: "payment",
url: "https://api.stripe.com/v1",
token: "your_stripe_secret_key_here"
});
await test_connection({ serviceName: "stripe-api" });Define field mappings for data transformation:
await create_integration_mapping({
name: "user-sync",
sourceService: "internal-api",
targetService: "crm",
mappings: [
{ sourcePath: "user.id", targetPath: "externalId" },
{ sourcePath: "user.email", targetPath: "contact.email" }
]
});
await apply_mapping({
mappingName: "user-sync",
data: { user: { id: "123", email: "test@example.com" } }
});Scaffold a new API service with routes, controllers, services, and middleware:
// Create Express API service
await create_api_service({
projectPath: "/path/to/project",
template: "express",
name: "my-api",
port: 3000,
generateOpenApi: true,
apiVersion: "/api/v1"
});
// Generate environment templates
await generate_env_template({
projectPath: "/path/to/project",
serviceName: "my-api",
port: 3000,
generateAll: true
});
// Start local API with smoke testing
await run_local_api({
projectPath: "/path/to/project",
port: 3000
});- Node.js 20+
- npm or pnpm
npm installCopy .env.example to .env and configure:
cp .env.example .envRun the server in development mode with hot reload:
npm run devCompile TypeScript to JavaScript:
npm run buildRun TypeScript type checking without emitting:
npm run typecheckLint the codebase:
npm run lintnpm testnpm run test:unitnpm run test:integrationRun tests in watch mode:
npm run test:watchList all available tools:
// Use the MCP's ListTools capabilityEach tool accepts JSON arguments and returns structured results:
// Tool response format
{
content: [
{
type: "text",
text: JSON.stringify(result, null, 2)
}
]
}Tools return isError: true when operations fail:
if (response.isError) {
// Handle error
}Access project data and documentation via the resources API:
api://projects- List configured projectsapi://connections- List external connectionsapi://mappings- List integration mappingsapi://docs/*- Documentation resources
This server implements the Model Context Protocol specification:
- Tools: Executable operations with JSON schemas
- Prompts: Predefined workflow templates
- Resources: URI-addressable data stores
This release includes the following security improvements:
- File operations validate that paths remain within the project directory
- Absolute paths and
..traversal are blocked in file generation - Project path validation ensures the target is a valid directory
- Logger automatically redacts sensitive values (passwords, tokens, keys, secrets)
- Config warns on startup when sensitive environment variables are detected
- Generated services include CORS wildcard detection in production mode
- Child process spawning uses
shell: falseto prevent command injection - Arguments are passed directly, not interpreted through shell
- All project paths are validated before use
- Environment variables are parsed with Zod schema validation
- External service adapters have explicit required/optional env var definitions
| Feature | Status | Notes |
|---|---|---|
| MCP Server bootstrap | Stable | Full MCP protocol implementation |
| API Testing tools | Stable | test_endpoint, test_batch_endpoints |
| Project Configuration | Stable | create_project_config, generate_template_project |
| External Services | Stable | connect_external_service, test_connection, list_external_services |
| Integration Mapping | Stable | create_integration_mapping, apply_mapping |
| API Integration Map | Stable | generate_api_integration_map |
| Logger | Stable | Structured logging with sensitive data redaction |
| Result types | Stable | successResult, errorResult, warningResult, partialResult |
| Feature | Status | Notes |
|---|---|---|
| API Service Generation | Beta | create_api_service - templates working, needs more routes |
| Local API Runner | Beta | run_local_api - basic smoke testing, needs health checks |
| Env Template Generator | Beta | generate_env_template - functional, needs more templates |
| Prompt catalog | Beta | 8 prompts defined, not all fully optimized |
| Adapter implementations | Alpha | implementationModule references exist but implementations not yet created |
See docs/known-limitations.md for full list. Key limitations:
- 146 TypeScript errors - Missing npm packages (prisma, @types/*, etc.)
- Integration tests broken - MCP server test setup needs rewrite
- Adapter implementations missing - Only metadata/adapter.ts files exist
- No authentication - API service templates lack auth middleware
- Limited error normalization - Errors not fully standardized across tools
- Install missing packages - Fix TypeScript errors by adding dependencies
- Rewrite integration tests - MCP server test setup needs redesign
- Create adapter implementations - Production-grade S3, Stripe, Supabase, etc.
- Add authentication templates - JWT, session, OAuth2 middleware
- Verification scripts - Automated setup verification for each adapter
- Error normalization - Unified error format across all tools
MIT