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
.env
file from the template:cp .env.example .env
- 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
- Create a new provider class in the
src/providers
directory, 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.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