Skip to main content
Glama
Dhakshnamoorthi146

IEEE MCP Server

IEEE MCP Server (Python)

A single Model Context Protocol server that exposes both Neo4j and Box to an AI agent over HTTP. It's designed to run as one Azure App Service, so the Databricks Supervisor needs only one MCP connection to reach every tool.

This is a standalone project. The existing Node neo4j-mcp-server and the original Box script are not affected — this combines their capabilities in one Python app for a single deployment.

Tools

Tool

Purpose

read_neo4j

Run a read-only Cypher query (MATCH / RETURN). Write keywords are rejected.

write_neo4j

Run a write Cypher query (CREATE / MERGE / SET / DELETE).

get_neo4j_schema

Return the graph schema — labels, relationships, properties, connections. Call first so queries use the right structure.

query_box

Ask a natural-language question about documents stored in Box (Box AI, via a Strands + Bedrock agent).

Requirements

  • Python 3.10+

  • A Neo4j database (e.g. Neo4j Aura)

  • A Box developer app + token (developer.box.com)

  • AWS Bedrock access (the query_box model runs on Bedrock)

Setup

cd ieee-mcp-server
python -m venv .venv
# Windows:  .venv\Scripts\activate      macOS/Linux:  source .venv/bin/activate
pip install -r requirements.txt

cp .env.example .env      # then fill in your real values
python server.py          # serves on http://localhost:8000

Endpoints:

  • GET /health — liveness check

  • POST /mcp — the MCP endpoint (requires Authorization: Bearer <MCP_SECRET_TOKEN>)

Environment

See .env.example. Key values:

Variable

Description

NEO4J_URI / NEO4J_USERNAME / NEO4J_PASSWORD

Neo4j connection

BOX_DEVELOPER_TOKEN

Box token (expires ~60 min; use Client Credentials Grant for production)

BEDROCK_MODEL_ID

Bedrock model for query_box (default us.anthropic.claude-sonnet-4-5)

AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_REGION

AWS creds for Bedrock (or use an IAM role on Azure)

MCP_SECRET_TOKEN

Bearer token clients must present on /mcp

HOST / PORT

Listen address (default 0.0.0.0:8000)

.env is git-ignored. Never commit real credentials.

Expose to Databricks (dev)

ngrok http 8000

Register the public URL (.../mcp) as a UC/MCP connection in Databricks with Authorization: Bearer <MCP_SECRET_TOKEN>.

Deploy to Azure App Service (one app for all tools)

  1. Push this folder to a repo.

  2. Create a Python App Service.

  3. Set the env vars from .env.example as Application settings (leave PORT to Azure; provide AWS creds or attach a managed identity with Bedrock access).

  4. Startup command:

    python -m uvicorn server:build_app --factory --host 0.0.0.0 --port 8000
  5. Point the Databricks MCP connection at https://<app>.azurewebsites.net/mcp.

Project layout

ieee-mcp-server/
├── server.py          # FastMCP app: Neo4j tools + Box tool
├── requirements.txt
├── .env.example
├── .gitignore
└── README.md