1.0.8 • Published 10 months ago

@obiwan90/edgedb-mcp-server v1.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

npm版本 下载总量 许可证 包大小

@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)

npx -y @obiwan90/edgedb-mcp-server@latest

Global Installation

npm install -g @obiwan90/edgedb-mcp-server

As a Project Dependency

npm install @obiwan90/edgedb-mcp-server

Usage

Command Line Usage

# If installed globally
edgedb-mcp-server

# Or via npx for temporary execution
npx -y @obiwan90/edgedb-mcp-server

Integration as a Library

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

# 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:
"edgedb-server": {
  "command": "npx",
  "args": [
    "-y",
    "@obiwan90/edgedb-mcp-server@latest"
  ]
}
"edgedb-server": {
  "command": "npx",
  "args": [
    "-y",
    "@obiwan90/edgedb-mcp-server@latest",
    "--instanceName",
    "your-instance-name"
  ]
}
  1. Restart the Cursor editor
  2. 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.
Cursor dialog box input:

mcp_edgedb-server_connectEdgeDB(instanceName="your-instance-name")

License

This project is licensed under the MIT License.

1.0.8

10 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.5

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago