What is KWDB MCP Server is a server implementation based on the Model Context Protocol, providing tools for interacting with the KWDB database.?
The KWDB MCP Server is a server implementation based on the MCP (Model Context Protocol) protocol, which provides a set of tools and resources for interacting with the KWDB database and providing business intelligence functionality through the MCP protocol. It supports reading, writing, querying, modifying data, and performing DDL operations.
The KWDB MCP Server is a server implementation based on the MCP (Model Context Protocol) protocol, which provides a set of tools and resources for interacting with the KWDB database and providing business intelligence functionality through the MCP protocol. The KWDB MCP Server supports reading, writing, querying, modifying data, and performing DDL operations.
Architecture
The core process of the KWDB MCP Server consists of the following components:
Parse MCP protocol: deal with MCP StdIO or HTTP SSE requests.
Schedule MCP Tools: distribute API requests based on the types of MCP Tools.
Prepare queries: automatically add the LIMIT 20 clause for SQL queries without a LIMIT clause.
Format query results: adopt a consistent JSON format for all API responses.
Features
Read Operations: execute SELECT, SHOW, EXPLAIN, and other read-only queries.
Write Operations: execute INSERT, UPDATE, DELETE, and CREATE, DROP, ALTER DDL operations.
Database Information: get information about the database, including tables and their schemas.
Syntax Guide: access a comprehensive syntax guide for KWDB through Prompts.
Standard API Response: provide consistent error handling mechanisms.
Tools Error: error information is wrapped in result objects with isError flag.
Resources Error: return standard JSON-RPC error responses directly.
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32002, // RESOURCE_NOT_FOUND: resource does not exist
"message": "handler not found for resource URI 'kwdb://table/nonexistent': resource not found"
}
}
Or internal processing errors:
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32603, // INTERNAL_ERROR: internal resource processing error
"message": "failed to get table schema for 'tablename': database connection error"
}
}
Success Response: tools return result objects, resources return content arrays.
Automatic LIMIT: prevent large result sets by automatically adding the LIMIT 20 clause to SELECT queries without a LIMIT clause.
Security
The KWDB MCP Server provides the following security measures:
Provide separate tools for read and write operations.
Valid queries to ensure that they match the expected operation type.
Print clear error messages for unauthorized operations.
MCP Resources
MCP Resources allow the KWDB MCP Server to expose data and content that can be read by MCP clients and used as context for LLM interactions. The KWDB MCP Server provides the following MCP Resources:
Resources
URI Format
Description
Example
Product information
kwdb://product_info
Product information, including the version and supported features
kwdb://product_info/
Database metadata
kwdb://db_info/{database_name}
Information about a specific database, including the engine type, comments, and tables
kwdb://db_info/db_shig
Table schema
kwdb://table/{table_name}
Schema of a specific table, including columns and example queries
kwdb://table/user_profile
MCP Tools
The MCP Tools enable the KWDB MCP Server to expose executable functionality to MCP clients. Through MCP Tools, LLMs can interact with external systems. The KWDB MCP Server provides the following MCP Tools.
read-query
The KWDB MCP Server executes the SELECT, SHOW, EXPLAIN statements, and other read-only queries to read data from the database. The read_query function returns the query results in a format of array for your SQL statement. In addition, the KWDB MCP Server will automatically add the LIMIT 20 clause to SELECT queries without a LIMIT clause to prevent large result sets.
Examples:
- - Query table data.
SELECT * FROM users LIMIT 10;
- - List all created tables.
SHOW TABLES;
- - Execute a SQL query and generate details about the SQL query.
EXPLAIN ANALYZE SELECT * FROM orders WHERE user_id = 1;
write-query
The KWDB MCP Server executes data modification queries, including DML and DDL operations.
Examples:
- - Insert data into the table.
INSERT INTO users (name, email) VALUES ('John Doe', '[email protected]');
- - Update data in the table.
UPDATE users SET email = '[email protected]' WHERE id = 1;
- - Remove data from the table.
DELETE FROM users WHERE id = 1;
- - Create a table.
CREATE TABLE products (id SERIAL PRIMARY KEY, name TEXT, price DECIMAL);
- - Add a column to a table.
ALTER TABLE products ADD COLUMN description TEXT;
- - Remove a table.
DROP TABLE products;
MCP Prompts
MCP Prompts enable the KWDB MCP Server to define reusable prompt templates and workflows that MCP clients can easily surface to users and LLMs. They provide a powerful way to standardize and share common LLM interactions. The KWDB MCP Server provides the following MCP Prompts:
Type
Prompt Name
Description
Database description
db_description
A comprehensive description of KWDB database, including core functions, supported features, and use cases.
Syntax guide
syntax_guide
A comprehensive syntax guide for KWDB, including examples of common queries and best practices.
Cluster management
cluster_management
A comprehensive guide for managing KWDB clusters, including node management, load balancing, and monitoring.
Data migration
data_migration
A guide for migrating data to and from KWDB, including import/export methods and best practices.
Installation
installation
A step-by-step guide for installing and deploying KWDB in various environments.
Performance tunning
performance_tuning
A guide for optimizing KWDB performance, including query optimization, indexing strategies, and system-level tuning.
Troubleshooting
troubleshooting
A guide for diagnosing and resolving common KWDB issues and errors.
Backup and restore
backup_restore
A comprehensive guide for backing up and restoring KWDB databases, including strategies, tools, and best practices.
DBA templates
dba_template
Templates and guidelines for MCP Prompts writing.
Add MCP Prompts
The MCP Prompts are Markdown files stored in the pkg/prompts/docs/ directory. These files are embedded into the binary when compiling the KWDB MCP Server using Go's embed package. Currently, the KWDB MCP Server provides the following Prompts files:
pkg/prompts/docs/ReadExamples.md: contain read query examples (using the SELECT statement).
pkg/prompts/docs/WriteExamples.md: contain write query examples (using the INSERT, UPDATE, DELETE, CREATE, ALTER statements).
pkg/prompts/docs/DBDescription.md: contain the database description.
pkg/prompts/docs/SyntaxGuide.md: contain the SQL syntax guide.
pkg/prompts/docs/ClusterManagementGuide.md: contain the cluster management guide.
pkg/prompts/docs/DataMigrationGuide.md: contain the data migration guide.
pkg/prompts/docs/InstallationGuide.md: contain the installation guide.
pkg/prompts/docs/PerformanceTuningGuide.md: contain the performance tuning guide.
pkg/prompts/docs/TroubleShootingGuide.md: contain the troubleshooting guide.
pkg/prompts/docs/BackupRestoreGuide.md: contain the backup and restore guide.
pkg/prompts/docs/DBATemplate.md: contain the database administration template.
To add MCP Prompts, follow these steps:
Create a Markdown file in the pkg/prompts/docs/ directory, such as new_usecase.md.