Firebird数据库
STDIOFirebird数据库访问分析管理服务器
Firebird数据库访问分析管理服务器
Implementation of Anthropic's MCP (Model Context Protocol) for Firebird databases.
https://github.com/user-attachments/assets/e68e873f-f87b-4afd-874f-157086e223af
MCP Firebird is a server that implements Anthropic's Model Context Protocol (MCP) for Firebird SQL databases. It allows Large Language Models (LLMs) like Claude to access, analyze, and manipulate data in Firebird databases securely and in a controlled manner.
Deploy MCP Firebird to the cloud in under 5 minutes!
Smithery is the easiest way to deploy MCP Firebird to production:
✅ One-click deployment - No infrastructure setup required ✅ Automatic scaling - Handles traffic spikes automatically ✅ Built-in monitoring - Track usage and performance ✅ Secure credentials - Encrypted environment variables ✅ Auto-updates - Always running the latest version ✅ Global CDN - Low latency worldwide
mcpFirebird repositoryhost: "your-firebird-server.com" port: 3050 database: "/path/to/database.fdb" user: "SYSDBA" password: "your-secure-password" useNativeDriver: true # Enable wire encryption (optional) logLevel: "info"
Your MCP Firebird server will be available at:
https://server.smithery.ai/your-username/mcp-firebird
import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"; const transport = new StreamableHTTPClientTransport( "https://server.smithery.ai/your-username/mcp-firebird" ); const client = new Client({ name: "my-ai-app", version: "1.0.0" }); await client.connect(transport);
📚 For detailed Smithery deployment instructions, see SMITHERY_DEPLOYMENT.md
MCP Firebird supports two driver options:
| Driver | Installation | Wire Encryption | Use Case |
|---|---|---|---|
| Pure JavaScript (default) | ✅ Simple (npx) | ❌ No | Most users, quick setup |
| Native Driver (optional) | ⚠️ Complex (requires build tools) | ✅ Yes | Enterprise, security required |
npx mcp-firebird@alpha --database=/path/to/database.fdb
⚠️ CRITICAL: npx does NOT work with the native driver. You MUST install globally.
⚠️ IMPORTANT: Wire encryption must be configured on the Firebird server (firebird.conf), not on the client.
Server Configuration (required first):
# In firebird.conf on the server WireCrypt = Required # or Enabled
Client Installation (MUST be global):
# Step 1: Install build tools # Windows: Visual Studio Build Tools (https://visualstudio.microsoft.com/downloads/) # Linux: sudo apt-get install build-essential python3 firebird-dev # macOS: xcode-select --install && brew install firebird # Step 2: Install MCP Firebird globally npm install -g mcp-firebird@alpha # Step 3: Install native driver globally npm install -g node-firebird-driver-native # Step 4: Run directly (WITHOUT npx) mcp-firebird --use-native-driver \ --database=/path/to/database.fdb \ --host=localhost \ --user=SYSDBA \ --password=masterkey
Why not npx? When npx runs a package from its temporary cache, it cannot access globally installed modules like node-firebird-driver-native. Both packages must be installed globally in the same location.
📚 For detailed installation instructions, see:
⭐ Recommended for local AI clients (Claude Desktop, Cursor, etc.)
The Smithery CLI provides the easiest way to install and configure MCP Firebird for local use:
# Interactive installation (prompts for configuration) npx -y @smithery/cli@latest install mcp-firebird --client claude # Pre-configured installation (skip prompts) npx -y @smithery/cli@latest install mcp-firebird --client claude --config '{ "database": "/path/to/database.fdb", "user": "SYSDBA", "password": "masterkey", "useNativeDriver": false }'
# List installed servers npx @smithery/cli list servers --client claude # Inspect server configuration npx @smithery/cli inspect mcp-firebird # Uninstall server npx @smithery/cli uninstall mcp-firebird --client claude
📖 Full Guide: Smithery CLI Installation Guide
# Global installation (stable) npm install -g mcp-firebird # Run the server npx mcp-firebird --database /path/to/database.fdb # Or use specific stable version npm install -g [email protected]
Stable Features (v2.2.3):
# Install alpha version with latest features npm install -g mcp-firebird@alpha # Or use specific alpha version npm install -g [email protected]
Alpha Features (v2.4.0-alpha.0):
Note: The SSE JSON parsing bug fix is now available in stable v2.2.3
For backup/restore operations, you'll need to install the Firebird client tools. See Complete Installation for more details.
For VSCode and GitHub Copilot integration, see VSCode Integration.
Edit the Claude Desktop configuration:
code $env:AppData\Claude\claude_desktop_config.json # Windows code ~/Library/Application\ Support/Claude/claude_desktop_config.json # macOS
Add the MCP Firebird configuration:
{ "mcpServers": { "mcp-firebird": { "command": "npx", "args": [ "mcp-firebird", "--host", "localhost", "--port", "3050", "--database", "C:\\path\\to\\database.fdb", "--user", "SYSDBA", "--password", "masterkey" ], "type": "stdio" } } }
Restart Claude Desktop
MCP Firebird supports multiple transport protocols to accommodate different client needs and deployment scenarios.
The STDIO transport is the standard method for Claude Desktop integration:
{ "mcpServers": { "mcp-firebird": { "command": "npx", "args": [ "mcp-firebird", "--database", "C:\\path\\to\\database.fdb", "--user", "SYSDBA", "--password", "masterkey" ], "type": "stdio" } } }
SSE transport allows the server to run as a web service, useful for web applications and remote access:
# Start SSE server on default port 3003 npx mcp-firebird --transport-type sse --database /path/to/database.fdb # Custom port and full configuration npx mcp-firebird \ --transport-type sse \ --sse-port 3003 \ --database /path/to/database.fdb \ --host localhost \ --port 3050 \ --user SYSDBA \ --password masterkey
# Set environment variables export TRANSPORT_TYPE=sse export SSE_PORT=3003 export DB_HOST=localhost export DB_PORT=3050 export DB_DATABASE=/path/to/database.fdb export DB_USER=SYSDBA export DB_PASSWORD=masterkey # Start server npx mcp-firebird
Once the SSE server is running, clients can connect to:
http://localhost:3003/ssehttp://localhost:3003/messageshttp://localhost:3003/healthThe latest MCP protocol supporting bidirectional communication:
# Start with Streamable HTTP npx mcp-firebird --transport-type http --http-port 3003 --database /path/to/database.fdb
Supports both SSE and Streamable HTTP protocols simultaneously with automatic detection:
# Start unified server (supports both SSE and Streamable HTTP) npx mcp-firebird --transport-type unified --http-port 3003 --database /path/to/database.fdb
http://localhost:3003/ssehttp://localhost:3003/mcphttp://localhost:3003/mcp-autohttp://localhost:3003/healthnpx mcp-firebird \ --transport-type sse \ --sse-port 3003 \ --database ./dev-database.fdb \ --user SYSDBA \ --password masterkey
npx mcp-firebird \ --transport-type unified \ --http-port 3003 \ --database /var/lib/firebird/production.fdb \ --host db-server \ --port 3050 \ --user APP_USER \ --password $DB_PASSWORD
docker run -d \ --name mcp-firebird \ -p 3003:3003 \ -e TRANSPORT_TYPE=sse \ -e SSE_PORT=3003 \ -e DB_DATABASE=/data/database.fdb \ -v /path/to/database:/data \ purodelhi/mcp-firebird:latest
Configure session timeouts and limits:
# Environment variables for session management export SSE_SESSION_TIMEOUT_MS=1800000 # 30 minutes export MAX_SESSIONS=1000 # Maximum concurrent sessions export SESSION_CLEANUP_INTERVAL_MS=60000 # Cleanup every minute npx mcp-firebird --transport-type sse
For web applications, configure CORS settings:
# Allow specific origins export CORS_ORIGIN="https://myapp.com,https://localhost:3000" export CORS_METHODS="GET,POST,OPTIONS" export CORS_HEADERS="Content-Type,mcp-session-id" npx mcp-firebird --transport-type sse
For production deployments, use a reverse proxy like nginx:
server { listen 443 ssl; server_name mcp-firebird.yourdomain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://localhost:3003; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
Wire Encryption Incompatibility (Firebird 3.0+) ⚠️ CRITICAL
Error: Incompatible wire encryption levels requested on client and server
IMPORTANT: The node-firebird library does NOT support Firebird 3.0+ wire encryption. The --wire-crypt parameter does NOT work.
ONLY Solution: You MUST disable wire encryption on the Firebird server:
For Firebird 3.0, add to firebird.conf:
WireCrypt = Disabled AuthServer = Srp, Legacy_Auth
For Firebird 4.0+, add to firebird.conf:
WireCrypt = Disabled AuthServer = Srp256, Srp, Legacy_Auth
For Firebird 5.0 Docker:
environment: FIREBIRD_CONF_WireCrypt: Disabled FIREBIRD_CONF_AuthServer: Srp256, Srp
If you cannot change server configuration, see Wire Encryption Limitation for alternatives.
Database Path Issues on Linux/Unix
Problem: Remote connection strings or Unix paths not working
Solution: This is fixed in v2.4.0-alpha.1+. The following paths now work correctly:
server:/path/to/database.fdb/var/lib/firebird/database.fdb192.168.1.100:/data/db.fdbI/O Error with Mixed-Case Paths on Windows
Error: I/O error during CreateFile (open) operation
Problem: Database path with mixed case (e.g., C:\MyData\database.fdb) causes errors
Workarounds:
C:\MYDATA\DATABASE.FDBC:/MyData/database.fdbConnection Refused
# Check if server is running curl http://localhost:3003/health # Check port availability netstat -an | grep 3003
Session Timeout
# Increase session timeout export SSE_SESSION_TIMEOUT_MS=3600000 # 1 hour
CORS Errors
# Allow all origins (development only) export CORS_ORIGIN="*"
Memory Issues
# Reduce max sessions export MAX_SESSIONS=100 # Enable more frequent cleanup export SESSION_CLEANUP_INTERVAL_MS=30000
JSON Parsing Issues (Fixed in v2.3.0-alpha.1+)
# If experiencing "Invalid message: [object Object]" errors, # upgrade to the latest alpha version: npm install mcp-firebird@alpha # Or use the latest alpha directly: npx mcp-firebird@alpha --transport-type sse
Note: Versions prior to 2.3.0-alpha.1 had a bug where POST requests to /messages
endpoint failed to parse JSON body correctly. This has been fixed with improved
middleware handling for both application/json and text/plain content types.
# Enable debug logging export LOG_LEVEL=debug # Monitor server health curl http://localhost:3003/health | jq # Check active sessions curl http://localhost:3003/health | jq '.sessions'
To install MCP Firebird for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @PuroDelphi/mcpFirebird --client claude
For more detailed information, check the following documents:
If you find MCP Firebird useful for your work or projects, please consider supporting its development through a donation. Your contributions help maintain and improve this tool.
Another great way to support this project is by hiring our AI agents through Asistentes Autónomos. We offer specialized AI assistants for various business needs, helping you automate tasks and improve productivity.
⭐ Donors, sponsors, and clients receive priority support and assistance with issues, feature requests, and implementation guidance. While we strive to help all users, those who support the project financially will receive faster response times and dedicated assistance.
Your support is greatly appreciated and helps ensure the continued development of MCP Firebird!
This project is licensed under the MIT License - see the LICENSE file for details.