Multi-Provider MCP Server
About
Custom MCP Server to integrate with tools and run inside a n8n instance
Details
- Author
- matheusleite
- Downloads
- 167
- Categories
- Other
Jump to
- Modular architecture for easy extension with new providers
- Centralized configuration management
- Provider-specific tool implementations
- CLI mode for direct tool testing
- Comprehensive error handling and logging
Install Node.js 14+, clone the repository, run npm install, copy .env.example to .env and configure environment variables. Start in development mode with npm run dev or production with npm start. Tools can be tested directly in CLI using npm run tool <tool_name> '<json_args>'.
Multi-Provider MCP Server
A robust and extensible Model Context Protocol (MCP) server that supports multiple tool providers. This server enables AI models to utilize tools from different service providers through a standardized interface.
Features
- Modular architecture for easy extension with new providers
- Centralized configuration management
- Provider-specific tool implementations
- CLI mode for direct tool testing
- Comprehensive error handling and logging
Supported Providers
Currently, the server supports the following providers:
- Evolution API: Tools for WhatsApp messaging and group management
Getting Started
Prerequisites
- Node.js 14.x or higher
- npm or yarn
Installation
1. Clone the repository
2. Install dependencies:
npm install
3. Create a
.env file from the template: cp .env.example .env
4. Configure your environment variables in the
.env file
Running the Server
Start the server in development mode:
npm run dev
Or in production:
npm start
Using CLI Mode for Testing Tools
You can directly test any tool by running:
npm run tool <tool_name> '<json_args>'
Example:
npm run tool envia_mensagem '{"number":"5511999999999","mensagem":"Hello world!"}'
Adding a New Provider
1. Create a new provider class in the src/providers directory, extending BaseProvider
2. Implement the required tools and their handlers
3. Register your provider in src/providers/index.js
4. Add provider configuration in src/config/index.js
5. Update .env.example with new variables
Provider Template
const BaseProvider = require('../core/BaseProvider');
class MyNewProvider extends BaseProvider {
constructor(config) {
super('provider-name', config);
this._registerTools();
}
_registerTools() {
// Register your tools here
}
}
module.exports = MyNewProvider;
Architecture
├── src/
│ ├── config/ # Configuration settings
│ ├── core/ # Core server functionality
│ │ ├── BaseProvider.js # Base class for providers
│ │ ├── MCPServer.js # MCP server implementation
│ │ └── ProviderManager.js # Manages all providers
│ ├── providers/ # Provider implementations
│ │ ├── EvolutionProvider.js # Evolution API provider
│ │ └── index.js # Provider exports
│ ├── utils/ # Utility functions
│ │ ├── httpClient.js # HTTP client wrapper
│ │ └── logger.js # Logging utility
│ └── index.js # Application entry point
├── .env # Environment variables
├── .env.example # Environment variables template
└── package.json # Project metadata
License
ISC
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



