Lindorm MCP Server
This repository is an example of how to create a MCP server for Lindorm, a multi-model NoSQL database.
Usage
Configuration on lindorm
To utilize this MCP server, follow these steps:
- Purchase the Lindorm wide-table engine, search-engine, vector-engine, and AI-engine on Alibaba Cloud.
 - Deploy a text-embedding model by following the official instructions.
 - Create your index (knowledgebase) and import your data using the deployed embedding model.
 
Environment Setup
- Clone this repository and navigate to the project directory.
 - Create your environment file:
 
cp .env.example .env
  - Edit the .env file with your specific configuration:
 
- LINDORM_INSTANCE_ID: Your Lindorm instance ID
 - USING_VPC_NETWORK: Set to true if running on VPC network, otherwise false
 - USERNAME: Your Lindorm account username
 - PASSWORD: Your Lindorm account password
 - TEXT_EMBEDDING_MODEL: The name of your deployed text-embedding model
 - TABLE_DATABASE: The database for SQL operationsNote: This configuration assumes all engines share the same username and password.
 
Running the MCP Server
You should install uv.Directly start the mcp server.
cd /path/to/alibabacloud-lindorm-mcp-server/
uv pip install .
uv run python -m src.lindorm_mcp_server.server
  Visual Studio Code
- Install the Cline extension.
 - Create the 
.envfile under/path/to/alibabacloud-lindorm-mcp-server/ - Copy the MCP configuration from .vscode/mcp.json to cline_mcp_settings.json, replacing paths and variables as needed.
 - Start the MCP server through the Cline extension.
 
Components
LindormVectorSearchClient: Performs full-text and vector searches on the search and vector engines.LindormWideTableClient: Executes SQL operations on Lindorm wide tables.
Available Tools
lindorm_retrieve_from_index: Retrieve from an existing indexes(or knowledgebase) using both full-text search and vector search, and return the aggregated results- Parameters 
      
- index_name: the index name, or known as knowledgebase name
 - query: the query that you want to search in knowledgebase
 - content_field: the text field that store the content text. You can get it from the index structure by lindorm_get_index_mappings tool
 - vector_field: the vector field that store the vector index. You can get it from the index structure by lindorm_get_index_mappings tool
 - top_k: the result number that you want to return
 
 
- Parameters 
      
 lindorm_get_index_fields: Get the fields info of the indexes(or knowledgebase), especially get the vector stored field and content stored field.- Parameters: 
      
- index_name: the index name, or known as knowledgebase name
 
 
- Parameters: 
      
 lindorm_list_all_index: List all the indexes(or knowledgebase) you have.lindorm_execute_sql: Execute SQL query on Lindorm database.- Parameters 
      
- query: The SQL query to execute which start with select
 
 
- Parameters 
      
 lindorm_show_tables: Get all tables in the Lindorm databaselindorm_describe_table: Get tables schema in the Lindorm database- Parameters 
      
- table_name: the table name
 
 
- Parameters