KDB MCP Service
Enables AI agents to interact with KDB+ databases through standardized MCP tools, supporting full CRUD operations, schema introspection, and multi-database connections with connection pooling for efficient time-series and financial data management.
README
KDB MCP Service
A Model Context Protocol (MCP) service for interacting with KDB+ databases. This service allows AI agents to query, insert, update, and delete data from KDB+ databases through a standardized MCP interface.
Features
- Multiple Database Support: Connect to multiple KDB+ databases simultaneously
- Connection Pooling: Efficient connection management with configurable pool sizes
- Full CRUD Operations: Query, insert, update, and delete data
- Schema Introspection: List tables and get schema information
- Environment Variable Support: Secure credential management via environment variables
- Async Operations: Non-blocking database operations for better performance
Installation
- Clone the repository:
git clone <repository-url>
cd kdb-mcp
- Install dependencies:
pip install -r requirements.txt
- Configure your databases (see Configuration section)
Configuration
Environment Variables
Copy .env.example to .env and fill in your database credentials:
cp .env.example .env
Edit .env with your actual database details:
KDB_PROD_HOST=your-prod-host.com
KDB_PROD_PORT=5000
KDB_PROD_USERNAME=your-username
KDB_PROD_PASSWORD=your-password
Configuration File
The service uses a YAML configuration file located at config/kdb_config.yaml. You can customize:
- Database connections
- Connection pool sizes
- Logging settings
- Server configuration
Example configuration:
databases:
production:
host: ${KDB_PROD_HOST:localhost}
port: ${KDB_PROD_PORT:5000}
username: ${KDB_PROD_USERNAME:}
password: ${KDB_PROD_PASSWORD:}
pool_size: 10
description: Production KDB+ database
Usage
Running the Server
Start the MCP server:
python main.py
Or with a custom config file:
python main.py /path/to/custom/config.yaml
Available MCP Tools
The service provides the following MCP tools:
1. kdb_query
Execute any Q query on a KDB+ database.
{
"database": "production",
"query": "select from trades where date=.z.d"
}
2. kdb_list_tables
List all tables in a database.
{
"database": "production"
}
3. kdb_get_schema
Get schema information for a specific table.
{
"database": "production",
"table": "trades"
}
4. kdb_select
Execute a SELECT query with optional filtering.
{
"database": "production",
"table": "trades",
"columns": ["symbol", "price", "volume"],
"where": "symbol=`AAPL",
"limit": 100
}
5. kdb_insert
Insert data into a table.
{
"database": "production",
"table": "trades",
"data": {
"symbol": "AAPL",
"price": 150.25,
"volume": 1000
}
}
6. kdb_update
Update existing records in a table.
{
"database": "production",
"table": "trades",
"updates": {
"price": 151.00
},
"where": "symbol=`AAPL"
}
7. kdb_delete
Delete records from a table.
{
"database": "production",
"table": "trades",
"where": "date<.z.d-30"
}
8. kdb_list_databases
List all configured databases.
{}
Integration with AI Agents
This MCP service can be integrated with any AI agent that supports the Model Context Protocol. The agent can use the provided tools to:
- Query real-time market data
- Analyze historical trading patterns
- Update trading strategies
- Manage data pipelines
- Generate reports from KDB+ data
Example Agent Workflow
# Agent pseudocode
async def analyze_trading_data():
# List available databases
databases = await call_tool("kdb_list_databases", {})
# Get today's trades
trades = await call_tool("kdb_select", {
"database": "production",
"table": "trades",
"where": "date=.z.d",
"limit": 1000
})
# Analyze and generate insights
insights = analyze(trades)
# Store insights back to KDB+
await call_tool("kdb_insert", {
"database": "analytics",
"table": "insights",
"data": insights
})
Project Structure
kdb-mcp/
├── src/
│ └── kdb_mcp/
│ ├── __init__.py # Package initialization
│ ├── kdb_connection.py # KDB+ connection handling
│ ├── mcp_server.py # MCP server implementation
│ └── config.py # Configuration management
├── config/
│ └── kdb_config.yaml # Database configuration
├── main.py # Entry point
├── requirements.txt # Python dependencies
├── .env.example # Environment variables template
└── README.md # This file
Security Considerations
- Never commit
.envfiles with actual credentials - Use environment variables for sensitive information
- Implement proper authentication for production deployments
- Consider using SSL/TLS for database connections
- Regularly rotate database credentials
- Limit database permissions to minimum required
Troubleshooting
Connection Issues
- Verify KDB+ server is running and accessible
- Check firewall rules for the KDB+ port
- Ensure credentials are correct
- Test connectivity with
telnet host port
Query Errors
- Verify Q syntax is correct
- Check table and column names exist
- Ensure proper data types are used
- Review KDB+ server logs for detailed errors
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
[Your License Here]
Support
For issues and questions, please create an issue in the repository or contact your system administrator.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.