matheusleite/mcp_server
If you are the rightful owner of mcp_server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A robust and extensible Model Context Protocol (MCP) server that supports multiple tool providers.
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
- Clone the repository
- Install dependencies:
npm install - Create a
.envfile from the template:cp .env.example .env - Configure your environment variables in the
.envfile
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
- Create a new provider class in the
src/providersdirectory, extendingBaseProvider - Implement the required tools and their handlers
- Register your provider in
src/providers/index.js - Add provider configuration in
src/config/index.js - Update
.env.examplewith 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