- MCP Neo4j Remote Server
MCP Neo4j Remote Server
Remote MCP Neo4j Memory Server with OAuth 2.1 and API Key Authentication - TypeScript implementation using FastMCP
Content
MCP Neo4j Remote Server
A remote Model Context Protocol (MCP) server that provides persistent memory capabilities through Neo4j graph database integration with OAuth 2.1 and API Key authentication.
Features
- Remote Access: HTTP-based MCP server that can be accessed over the network
- Dual Authentication:
- OAuth 2.1 via Descope (for users/applications that support OAuth)
- API Key authentication (for clients that only support API keys)
- Neo4j Integration: Persistent graph-based memory storage
- Docker Support: Containerized deployment with Docker Compose
- Health Monitoring: Built-in health checks and monitoring endpoints
- TypeScript: Full TypeScript implementation with type safety
Architecture
The server converts the original Python Neo4j MCP implementation to TypeScript using the FastMCP framework, enabling remote access with robust authentication.
Authentication Methods
-
OAuth 2.1 (via Descope):
- Use
Authorization: Bearer <token>header - Supports multiple OAuth providers (Google, GitHub, Microsoft, etc.)
- Full user session management
- Use
-
API Key:
- Use
Authorization: ApiKey <key>header - Or
x-api-key: <key>header - Or
?api_key=<key>query parameter
- Use
Quick Start
1. Installation
cd /workspace/mcp-neo4j-remote
npm install
2. Configuration
Copy .env.example to .env and configure:
cp .env.example .env
Edit .env with your settings:
# Neo4j Configuration
NEO4J_URI=bolt://macmini.arturs-server.com:7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=nohuprsz
# API Keys (comma-separated)
API_KEYS=your-api-key-1,your-api-key-2
# Optional: Descope OAuth
DESCOPE_PROJECT_ID=your_project_id
DESCOPE_MANAGEMENT_KEY=your_management_key
3. Development
# Development with hot reload
npm run dev
# Build for production
npm run build
# Start production server
npm start
4. Docker Deployment
# Build and start with Docker Compose
docker-compose up --build
# Or build manually
docker build -t mcp-neo4j-remote .
docker run -p 8080:8080 --env-file .env mcp-neo4j-remote
Usage
Health Check
curl http://localhost:8080/health
MCP Connection
The server exposes an MCP endpoint at:
- HTTP Stream:
http://localhost:8080/stream
Authentication Examples
Using API Key:
curl -H "x-api-key: demo-key-12345" \
-H "Content-Type: application/json" \
http://localhost:8080/stream
Using OAuth Bearer Token:
curl -H "Authorization: Bearer <your-oauth-token>" \
-H "Content-Type: application/json" \
http://localhost:8080/stream
Available Tools
The server provides the same tools as the original Python implementation:
Query Tools
read_graph- Read the entire knowledge graphsearch_nodes- Search for nodes based on a queryfind_nodes/open_nodes- Find specific nodes by name
Entity Management
create_entities- Create multiple new entitiesdelete_entities- Delete entities and their relations
Relation Management
create_relations- Create relations between entitiesdelete_relations- Delete specific relations
Observation Management
add_observations- Add observations to existing entitiesdelete_observations- Delete specific observations
API Resources
Server Status
- URI:
mcp-neo4j://status - Provides server health, Neo4j stats, and authentication status
Authentication Info
- URI:
mcp-neo4j://auth-info - Provides available authentication methods and configuration
Testing Connection
Test the connection to your Neo4j server:
# Using the configured .env file
npm run dev
# Or test with curl (after server is running)
curl -H "x-api-key: demo-key-12345" \
http://localhost:8080/health
Environment Variables
| Variable | Description | Required | Default |
|---|---|---|---|
PORT | Server port | No | 8080 |
NODE_ENV | Environment mode | No | development |
NEO4J_URI | Neo4j connection URI | Yes | - |
NEO4J_USERNAME | Neo4j username | Yes | - |
NEO4J_PASSWORD | Neo4j password | Yes | - |
NEO4J_DATABASE | Neo4j database name | No | neo4j |
DESCOPE_PROJECT_ID | Descope project ID | No | - |
DESCOPE_MANAGEMENT_KEY | Descope management key | No | - |
API_KEYS | Comma-separated API keys | No | - |
CORS_ORIGINS | Allowed CORS origins | No | * |
Development
Project Structure
src/
├── auth/ # Authentication providers
│ ├── base.ts # Abstract auth provider
│ ├── oauth.ts # Descope OAuth provider
│ ├── apikey.ts # API key provider
│ └── manager.ts # Auth manager
├── neo4j/ # Neo4j integration
│ └── memory.ts # Memory implementation
├── types/ # TypeScript type definitions
│ └── index.ts # Shared types
├── server.ts # FastMCP server setup
└── index.ts # Main entry point
Scripts
npm run dev- Development with hot reloadnpm run build- Build TypeScript to JavaScriptnpm start- Start production servernpm test- Run testsnpm run lint- Lint codenpm run format- Format code
Security Considerations
- Environment Variables: Never commit
.envfiles with real credentials - API Keys: Use strong, unique API keys and rotate them regularly
- CORS: Configure
CORS_ORIGINSappropriately for production - HTTPS: Use HTTPS in production environments
- Network: Restrict network access to the server as needed
Troubleshooting
Connection Issues
- Neo4j Connection: Verify Neo4j is accessible and credentials are correct
- Port Conflicts: Ensure port 8080 is available or change in configuration
- Authentication: Check API keys or OAuth configuration
Common Errors
- "Failed to connect to Neo4j": Check Neo4j URI, username, and password
- "Authentication failed": Verify API keys or OAuth tokens
- "Port already in use": Change the PORT environment variable
License
MIT License - see LICENSE file for details.
Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
WindsurfThe new purpose-built IDE to harness magic
ChatWiseThe second fastest AI chatbot™
Tavily Mcp
Amap Maps高德地图官方 MCP Server
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
CursorThe AI Code Editor
DeepChatYour AI Partner on Desktop
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Context7Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题;
Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Playwright McpPlaywright MCP server
Serper MCP ServerA Serper MCP Server
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs