UNPKG

@obiwan90/edgedb-mcp-server

Version:
169 lines (136 loc) 4.8 kB
[![npm版本](https://img.shields.io/npm/v/@obiwan90/edgedb-mcp-server.svg)](https://www.npmjs.com/package/@obiwan90/edgedb-mcp-server) [![下载总量](https://img.shields.io/npm/dt/@obiwan90/edgedb-mcp-server.svg)](https://www.npmjs.com/package/@obiwan90/edgedb-mcp-server) [![许可证](https://img.shields.io/npm/l/@obiwan90/edgedb-mcp-server.svg)](https://github.com/obiwan90/mcp-server-edgedb/blob/main/LICENSE) [![包大小](https://img.shields.io/bundlephobia/min/@obiwan90/edgedb-mcp-server.svg)](https://bundlephobia.com/package/@obiwan90/edgedb-mcp-server) # @obiwan90/edgedb-mcp-server EdgeDB MCP Server is a tool based on the Model Context Protocol (MCP) that provides query and management capabilities for EdgeDB databases. It can be used as a command-line tool or integrated as a library into other projects. ## Features - **Database Management Tools** - Connect to databases (supports DSN and instance name) - List available databases - Create new databases - Switch current database - Get current database information - **Query Tools** - Execute EdgeQL queries - Execute EdgeQL queries with parameters - Find single records - Find multiple records (with filtering, sorting, pagination) - **Schema Management Tools** - List types (optionally including system types) - Get type details - Compare schema structures ## Installation ### Temporary Execution (without installation) ```bash npx -y @obiwan90/edgedb-mcp-server@latest ``` ### Global Installation ```bash npm install -g @obiwan90/edgedb-mcp-server ``` ### As a Project Dependency ```bash npm install @obiwan90/edgedb-mcp-server ``` ## Usage ### Command Line Usage ```bash # If installed globally edgedb-mcp-server # Or via npx for temporary execution npx -y @obiwan90/edgedb-mcp-server ``` ### Integration as a Library ```javascript import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { registerAllTools } from "@obiwan90/edgedb-mcp-server/build/tools/index.js"; import { registerAllResources } from "@obiwan90/edgedb-mcp-server/build/resources/index.js"; // Initialize MCP server const server = new McpServer({ transport: new StdioServerTransport(), name: "EdgeDB MCP Server", description: "Providing EdgeDB database services through MCP protocol", version: "1.0.0" }); // Register resources and tools registerAllResources(server); registerAllTools(server); // Start the server (async function() { try { const transport = new StdioServerTransport(); await server.connect(transport); console.log("MCP server connected, waiting for client requests..."); } catch (error) { console.error("Server startup failed:", error); process.exit(1); } })(); ``` ## Environment Variables - `EDGEDB_DSN` - EdgeDB database connection string - `EDGEDB_INSTANCE` - EdgeDB instance name - `DEBUG` - Enable debug mode (true/false) - `LOG_LEVEL` - Log level (default: info) ## Project Development ### Directory Structure ``` src/ ├── config/ # Configuration management ├── resources/ # MCP resource definitions ├── services/ # Service layer (EdgeDB connection management) ├── tools/ # MCP tool definitions │ ├── database.ts # Database management tools │ ├── query.ts # Query tools │ ├── schema.ts # Schema management tools │ └── index.ts # Tool exports ├── types/ # Type definitions ├── utils/ # Utility functions └── index.ts # Application entry point ``` ### Building the Project ```bash # Clone the project git clone https://github.com/obiwan90/mcp-server-edgedb.git cd mcp-server-edgedb # Install dependencies npm install # Build the project npm run build # Start the service npm start ``` ## Cursor Integration To integrate this MCP server with the Cursor editor, follow these steps: 1. Edit Cursor's MCP configuration file (`~/.cursor/mcp.json`) 2. Add the following configuration: ```json "edgedb-server": { "command": "npx", "args": [ "-y", "@obiwan90/edgedb-mcp-server@latest" ] } ``` ```json "edgedb-server": { "command": "npx", "args": [ "-y", "@obiwan90/edgedb-mcp-server@latest", "--instanceName", "your-instance-name" ] } ``` 3. Restart the Cursor editor 4. Now you can use EdgeDB tools in Cursor! Access them through the command palette (Cmd+Shift+P) by searching for "EdgeDB" or via the chat interface. ```json Cursor dialog box input: mcp_edgedb-server_connectEdgeDB(instanceName="your-instance-name") ``` ## License This project is licensed under the [MIT License](https://opensource.org/licenses/MIT).