mcp-server-ovh
v1.0.2
Published
MCP server for OVH API integration with standardized tool access
Downloads
341
Maintainers
Readme
MCP Server OVH
A Model Context Protocol (MCP) server that provides standardized access to OVH API services. This server enables AI assistants and applications to interact with OVH's cloud infrastructure through a unified, secure interface.
👨💻 Author & Company
Author: Isaac Campos Mesén Company: RunIT Solutions Repository: GitHub - runitsolutions/mcp-server-ovh
✅ Project Status
Status: 🟢 FULLY OPERATIONAL
- ✅ Build: TypeScript compilation successful
- ✅ Runtime: Server starts without errors
- ✅ Schema Validation: Input validation working correctly
- ✅ MCP Integration: Compatible with MCP clients
- ✅ CommonJS: Uses
require()for module loading - ✅ TypeScript: Full type safety with proper declarations
Features
- 🔐 Secure Authentication: Support for both API key and OAuth2 authentication methods
- 🛠️ Standardized Tools: Clean MCP tool interfaces for common OVH operations
- ✅ Input Validation: Robust validation using Zod schemas
- 🚀 Modern API: Built with the latest MCP SDK following best practices
- 📝 TypeScript: Full TypeScript support with strict type checking
- 🧪 Well Tested: Comprehensive test suite with Jest
- 📚 Well Documented: Complete documentation and examples
Installation
Prerequisites
- Node.js 18.x or higher
- npm or yarn
- OVH API credentials (see Setup section)
Install from npm
npm install mcp-server-ovhBuild from source
git clone https://github.com/runitsolutions/mcp-server-ovh.git
cd mcp-server-ovh
npm install
npm run buildSetup
OVH API Credentials
You need to obtain API credentials from OVH. There are two authentication methods:
Method 1: API Keys (Recommended)
- Go to OVH Manager
- Navigate to API Keys section
- Create a new application key
- Note down your
App Key,App Secret, andConsumer Key
Method 2: OAuth2
- Register your application in OVH's OAuth2 system
- Obtain your
Client IDandClient Secret
Configuration
Create a .env file in your project root:
# For API Key authentication
OVH_ENDPOINT=ovh-eu
OVH_APP_KEY=your_app_key_here
OVH_APP_SECRET=your_app_secret_here
OVH_CONSUMER_KEY=your_consumer_key_here
# For OAuth2 authentication (alternative)
OVH_CLIENT_ID=your_client_id_here
OVH_CLIENT_SECRET=your_client_secret_hereUsage
As an MCP Server
The server communicates via stdio and can be used with any MCP-compatible client.
Direct execution
npm startUsing with MCP clients
The server is designed to work with MCP-compatible clients like Claude Desktop or other AI assistants that support the Model Context Protocol.
Available Tools
1. Initialize OVH Client
Initialize the OVH API client with your credentials.
{
"name": "ovh_initialize_client",
"arguments": {
"endpoint": "ovh-eu",
"appKey": "your_app_key",
"appSecret": "your_app_secret",
"consumerKey": "your_consumer_key"
}
}2. Initialize OAuth2 Client
Initialize with OAuth2 credentials.
{
"name": "ovh_oauth2_initialize",
"arguments": {
"endpoint": "ovh-eu",
"clientID": "your_client_id",
"clientSecret": "your_client_secret"
}
}3. Make API Request
Make a custom request to any OVH API endpoint.
{
"name": "ovh_request",
"arguments": {
"method": "GET",
"path": "/me",
"data": {} // Optional data for POST/PUT requests
}
}4. Get User Information
Get information about the authenticated user.
{
"name": "ovh_get_user_info",
"arguments": {}
}5. Get User Bills
Retrieve billing information.
{
"name": "ovh_get_bills",
"arguments": {}
}6. Get User Services
List all services associated with the account.
{
"name": "ovh_get_services",
"arguments": {}
}🛠️ IDE Integration
This MCP server can be integrated with various IDEs and editors that support the Model Context Protocol. Below are the instructions for popular IDEs.
Cursor Integration
Cursor supports MCP servers through the Model Context Protocol. You can add this OVH MCP server to your Cursor configuration.
Option 1: Project Configuration
Create a .cursor/mcp.json file in your project root:
{
"mcpServers": {
"ovh-api": {
"command": "npx",
"args": ["mcp-server-ovh"],
"env": {
"OVH_ENDPOINT": "ovh-eu",
"OVH_APP_KEY": "your_app_key_here",
"OVH_APP_SECRET": "your_app_secret_here",
"OVH_CONSUMER_KEY": "your_consumer_key_here"
}
}
}
}Option 2: Global Configuration
Create a ~/.cursor/mcp.json file for system-wide access:
{
"mcpServers": {
"ovh-api": {
"command": "npx",
"args": ["mcp-server-ovh"],
"env": {
"OVH_ENDPOINT": "ovh-eu",
"OVH_APP_KEY": "your_app_key_here",
"OVH_APP_SECRET": "your_app_secret_here",
"OVH_CONSUMER_KEY": "your_consumer_key_here"
}
}
}
}Other IDEs
VS Code with MCP Extension
If you're using VS Code with an MCP extension:
- Install the MCP extension for VS Code
- Configure the server in your MCP settings:
{
"server": "ovh-api",
"command": "npx",
"args": ["mcp-server-ovh"],
"env": {
"OVH_ENDPOINT": "ovh-eu",
"OVH_APP_KEY": "your_app_key_here",
"OVH_APP_SECRET": "your_app_secret_here",
"OVH_CONSUMER_KEY": "your_consumer_key_here"
}
}Other MCP-Compatible IDEs
For other IDEs that support MCP:
- Ensure your IDE supports the Model Context Protocol
- Configure the server using the command:
npx mcp-server-ovh - Set the required environment variables for OVH authentication
Authentication Setup
Before using the MCP server, you need to set up OVH API credentials:
# Set environment variables
export OVH_ENDPOINT="ovh-eu"
export OVH_APP_KEY="your_app_key"
export OVH_APP_SECRET="your_app_secret"
export OVH_CONSUMER_KEY="your_consumer_key"Or create a .env file in your project directory:
OVH_ENDPOINT=ovh-eu
OVH_APP_KEY=your_app_key_here
OVH_APP_SECRET=your_app_secret_here
OVH_CONSUMER_KEY=your_consumer_key_hereUsage in IDE
Once configured, you can use the OVH MCP server in your IDE by:
- Asking for OVH information: "What services do I have in OVH?"
- Checking account details: "Show my OVH account information"
- Billing inquiries: "What are my recent OVH bills?"
- Service management: "List all my OVH services"
The AI assistant will automatically use the available OVH tools when relevant to your questions.
Development
Project Structure
src/
├── index.ts # Main server implementation
├── types/
│ └── ovh.d.ts # OVH API type definitions
└── __tests__/ # Test files
├── server.test.ts # Server functionality tests
└── validation.test.ts # Input validation testsDevelopment Commands
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode (watch mode)
npm run dev
# Run linter
npm run lint
# Fix linting issues
npm run lint:fix
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Clean build artifacts
npm run cleanTesting
The project includes comprehensive tests covering:
- Input validation schemas
- Server initialization
- Tool registration
- Error handling
- API interactions (mocked)
# Run all tests
npm test
# Run tests with coverage
npm test -- --coverage
# Run specific test file
npm test -- server.test.tsCode Quality
This project follows strict code quality standards:
- ESLint: Configured with TypeScript rules
- Prettier: Code formatting (can be added if needed)
- Jest: Comprehensive test suite
- TypeScript: Strict mode enabled
- Pre-commit hooks: Quality checks before commits
API Reference
Supported Endpoints
The server provides access to OVH's REST API endpoints:
/me- User account information/me/bill- Billing information/me/service- Service listings- And any other OVH API endpoint via the generic
ovh_requesttool
Error Handling
The server provides clear error messages for:
- Authentication failures
- Invalid input validation
- API rate limits
- Network connectivity issues
- Invalid API responses
Rate Limiting
Be aware of OVH API rate limits. The server includes error handling for rate limit scenarios but doesn't implement automatic retry logic.
Contributing
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
Development Guidelines
- Follow the existing code style
- Add tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting PR
- Use conventional commit messages
Security
- Never commit API credentials to version control
- Use environment variables for sensitive data
- The server validates all inputs to prevent injection attacks
- API keys are stored securely and not logged
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
Related Projects
- Model Context Protocol - The protocol this server implements
- OVH API - OVH's official API documentation
- MCP SDK - The SDK used to build this server
- GitHub Repository - Source code and issues
🔧 Troubleshooting
Common Issues
Authentication Problems
- Error: "OVH client not initialized"
- Solution: Ensure all required environment variables are set
- Check: Verify your API credentials are correct and have proper permissions
Connection Issues
- Error: Network timeout or connection failed
- Solution: Check your internet connection and OVH endpoint configuration
- Check: Verify the OVH_ENDPOINT matches your account region
Permission Errors
- Error: API access denied
- Solution: Ensure your API keys have the necessary permissions
- Check: Review OVH Manager API key permissions
Debug Mode
Enable debug logging by setting the environment variable:
export DEBUG=mcp-server-ovhLogs
View MCP server logs in your IDE:
- Open the Output panel (usually Ctrl+Shift+U)
- Select "MCP Logs" from the dropdown
- Check for connection errors, authentication issues, or server crashes
📚 Examples
Basic Usage
// In your MCP-compatible IDE
// Ask: "What OVH services do I have?"
// The AI will automatically use the ovh_get_services tool
// Ask: "Show my OVH account information"
// The AI will use the ovh_get_user_info tool
// Ask: "What are my recent OVH bills?"
// The AI will use the ovh_get_bills toolAdvanced Integration
// Custom API calls
// Ask: "Make a custom API call to /me/service/domain.example.com"
// The AI will use the ovh_request tool with appropriate parameters📞 Support
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ by RunIT Solutions using the Model Context Protocol
