{"id":"63d72d22-7aa7-42e9-a120-5b18d1f168ba","slug":"mcp-proxy-to-api-nocode","kind":"mcp","name":"mcp-proxy-to-api-nocode","summary":"MCP Proxy to API without code","owner":"limcheekin","repoUrl":"https://github.com/limcheekin/mcp-proxy-to-api-nocode","license":"MIT","licenseTier":"permissive","trust":"community","stars":1,"match":null,"fewStars":true,"format":"mcp","createdAt":"2025-06-17T06:46:46.000Z","addedAt":"2026-10-21T04:01:02.993Z","logoUrl":"https://avatars.githubusercontent.com/u/88172?u=5281c995400e5aa44ca7cab373ebfdb9488ca1f9&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["cloud-infra","developer-tools"],"tags":["mcp-proxy-server","nocode"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-23T15:06:06.781Z","sample":false,"url":"https://conduits.dev/tools/mcp-proxy-to-api-nocode","language":"","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# MCP Proxy to API NoCode\n\nA Docker Compose solution that exposes the [Fabric AI](https://github.com/danielmiessler/fabric) REST API through the [MCP Access Point](https://github.com/sxhxliang/mcp-access-point) protocol conversion gateway, enabling MCP clients like Cursor Desktop to interact with Fabric's AI pattern management capabilities.\n\n## 🚀 Overview\n\nThis project provides a no-code solution for converting Fabric's REST API into MCP (Model Context Protocol) compatible services. It combines:\n\n- **Fabric Main REST API**: The comprehensive AI pattern management system by Daniel Miessler\n- **MCP Access Point**: A protocol conversion gateway that converts HTTP services to MCP services for MCP clients\n\n## 🛠 Architecture\n\n```mermaid\ngraph TD\n    A[MCP Clients<br/>Cursor Desktop, MCP Inspector] --> |SSE/Streamable HTTP| B[MCP Access Point :9999]\n    B --> |HTTP Requests| C[Fabric REST API :9991]\n    C --> D[AI Models & Patterns]\n    \n    E[OpenAPI Spec] --> B\n    F[Config Files] --> B\n    G[Docker Volumes] --> C\n```\n\n## 📦 Components\n\n### Fabric Service\n- **Port**: 9991 (mapped from internal 8080)\n- **Purpose**: Core AI pattern management and LLM interaction\n- **Features**:\n  - Chat completions with various LLM providers\n  - Pattern management (create, read, update, delete)\n  - Session management for conversation history\n  - Context management for additional data\n  - Configuration management\n\n### MCP Access Point\n- **Port**: 9999 (mapped from internal 8080)\n- **Purpose**: Protocol conversion gateway (HTTP → MCP)\n- **Features**:\n  - Converts HTTP services to MCP-compatible services\n  - Supports SSE and Streamable HTTP protocols for MCP clients\n  - Multi-tenancy support for multiple services\n  - OpenAPI specification integration\n  - Load balancing and routing capabilities\n\n## 🔧 Configuration Files\n\n### `config.yaml`\nMain configuration for the MCP Access Point service:\n- **MCP Services**: Defines services accessible via MCP protocol\n- **Upstream Services**: Backend HTTP service configuration\n- **Routing**: Maps MCP operations to HTTP endpoints\n- **Headers**: Authentication and request header management\n\n### `docker-compose.yaml`\nOrchestrates both services with:\n- **Service Dependencies**: Proper startup order and networking\n- **Volume Mounts**: Persistent data storage for configurations and patterns\n- **Environment Variables**: Secure API key management\n- **Port Mappings**: External access configuration\n\n### `config/fabric/openapi.json`\nOpenAPI 3.0 specification defining Fabric's REST API endpoints that will be converted to MCP operations.\n\n## 🚀 Quick Start\n\n### Prerequisites\n- Docker and Docker Compose installed\n- API key for Fabric service\n\n### Installation\n\n1. **Clone the repository**:\n   ```bash\n   git clone https://github.com/limcheekin/mcp-proxy-to-api-nocode.git\n   cd mcp-proxy-to-api-nocode\n   ```\n\n2. **Set your Fabric API key**:\n   ```bash\n   export FABRIC_API_KEY=your_actual_api_key_here\n   ```\n   \n   Or edit the `docker-compose.yaml` file and replace `your_fabric_key_here` with your actual API key.\n\n3. **Update the proxy configuration**:\n   Edit `config.yaml` and replace `your_fabric_key_here` in the upstreams section:\n   ```yaml\n   upstreams:\n     - id: 1\n       headers:\n         X-API-Key: \"your_actual_api_key_here\"\n       nodes:\n         \"fabric:8080\": 1\n   ```\n\n4. **Start the services**:\n   ```bash\n   docker-compose up -d\n   ```\n\n5. **Verify the deployment**:\n   ```bash\n   # Check service status\n   docker-compose ps\n   \n   # Test with MCP Inspector\n   npx @modelcontextprotocol/inspector\n   # Connect to: http://localhost:9999/sse (SSE) or http://localhost:9999/mcp/ (Streamable HTTP)\n   ```\n\n## 📋 MCP Client Usage\n\n### Supported MCP Clients\n- **Cursor Desktop**: Configure MCP server with `http://localhost:9999/sse`\n- **MCP Inspector**: Use for debugging and testing MCP operations\n\n### Connection Endpoints\n- **SSE Protocol**: `http://localhost:9999/sse`\n- **Streamable HTTP**: `http://localhost:9999/mcp/`\n- **Service-specific**: `http://localhost:9999/api/fabric/sse` or `http://localhost:9999/api/fabric/mcp/`\n\n### MCP Operations Available\nBased on the Fabric API, available MCP operations include:\n- **Chat Operations**: Interact with AI models through chat completions\n- **Pattern Management**: Create, read, update, and delete AI patterns\n- **Session Management**: Manage conversation sessions\n- **Context Management**: Handle additional context data\n\n## 🔧 Configuration Examples\n\n### Basic config.yaml Structure\n```yaml\nmcps:\n  - id: fabric\n    upstream_id: 1\n    path: config/fabric/openapi.json\n\nupstreams:\n  - id: 1\n    headers:\n      X-API-Key: \"your_fabric_api_key\"\n    nodes:\n      \"fabric:8080\": 1\n    scheme: http\n```\n\n### Multi-service Configuration\n```yaml\nmcps:\n  - id: fabric-main\n    upstream_id: 1\n    path: config/fabric/openapi.json\n  - id: fabric-patterns\n    upstream_id: 1\n    routes:\n      - id: 1\n        operation_id: list_patterns\n        uri: /patterns/names\n        method: GET\n        meta:\n          name: List Available Patterns\n          description: Get all available AI patterns\n\nupstreams:\n  - id: 1\n    headers:\n      X-API-Key: \"your_fabric_api_key\"\n    nodes:\n      \"fabric:8080\": 1\n    type: roundrobin\n    scheme: http\n```\n\n## 🔒 Security\n\n### API Key Authentication\nConfigure API keys in the upstreams section of `config.yaml`:\n```yaml\nupstreams:\n  - id: 1\n    headers:\n      X-API-Key: \"your_fabric_api_key\"\n      Authorization: \"Bearer your_token\"\n```\n\n### Network Security\n- MCP clients connect via SSE or Streamable HTTP protocols\n- Internal Docker networking for service communication\n- Configurable headers for upstream authentication\n\n## 📊 Monitoring and Debugging\n\n### Using MCP Inspector\n```bash\n# Start MCP Inspector for debugging\nnpx @modelcontextprotocol/inspector\n\n# Access at http://localhost:6274/\n# Connect to your MCP Access Point:\n# - SSE: http://localhost:9999/sse\n# - Streamable HTTP: http://localhost:9999/mcp/\n```\n\n### Service Health Checks\n```bash\n# Check container status\ndocker-compose ps\n\n# View logs\ndocker-compose logs fabric\ndocker-compose logs mcp-access-point\n\n# Test direct Fabric API\ncurl http://localhost:9991/patterns/names -H \"X-API-Key: your_api_key\"\n```\n\n## 🐛 Troubleshooting\n\n### Common Issues\n\n1. **MCP Client Connection Failures**:\n   - Verify MCP Access Point is running on port 9999\n   - Check that the correct protocol endpoint is used (SSE vs Streamable HTTP)\n   - Ensure OpenAPI specification is properly loaded\n\n2. **Authentication Errors**:\n   - Verify API keys are correctly configured in both services\n   - Check that upstream headers are properly set in config.yaml\n\n3. **Service Communication Issues**:\n   - Ensure Fabric service is accessible from MCP Access Point\n   - Verify Docker networking and port configurations\n\n### Debug Commands\n```bash\n# Check MCP Access Point configuration\ndocker-compose exec mcp-access-point cat /app/config/config.yaml\n\n# Test upstream connectivity\ndocker-compose exec mcp-access-point wget -O- http://fabric:8080/patterns/names\n\n# Restart with fresh configuration\ndocker-compose down && docker-compose up -d\n```\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/new-feature`\n3. Commit your changes: `git commit -am 'Add new feature'`\n4. Push to the branch: `git push origin feature/new-feature`\n5. Submit a pull request\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- [Daniel Miessler](https://github.com/danielmiessler) for the [Fabric](https://github.com/danielmiessler/fabric) project\n- [sxhxliang](https://github.com/sxhxliang) for the [MCP Access Point](https://github.com/sxhxliang/mcp-access-point) protocol converter\n- [Cloudflare](https://github.com/cloudflare) for the [Pingora](https://github.com/cloudflare/pingora) framework\n\n## 📚 Additional Resources\n\n- [Model Context Protocol Specification](https://spec.modelcontextprotocol.io/)\n- [Fabric Documentation](https://github.com/danielmiessler/fabric)\n- [MCP Access Point Documentation](https://github.com/sxhxliang/mcp-access-point)\n- [Cursor MCP Integration Guide](https://docs.cursor.com/context/model-context-protocol)\n\n---\n\n**Note**: This setup converts Fabric's REST API into MCP-compatible services for use with MCP clients like Cursor Desktop. Replace API keys with your actual values before deployment."}