About MCP Server
This Python MCP server retrieves SharePoint document metadata and finds entities and relationships in a Neo4j knowledge graph through semantic similarity. It is intended for applications that need both document metadata and graph-based entity retrieval.
Key features
- 01Retrieve structured metadata from SharePoint Documents
- 02Find entities using semantic similarity
- 03Return related knowledge graph entities and relationships
- 04FastMCP-based tool management
Use cases
- 01Retrieve metadata from a SharePoint Documents library
- 02Find relevant entities in a Neo4j graph
- 03Explore relationships related to a graph entity
MCP support
Exposes the `metadata_retrieve` and `entity_retrieve` tools to MCP clients, using SharePoint and Neo4j as data sources.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP Server
A Python-based server application that provides tools for metadata retrieval from SharePoint and entity retrieval from a Neo4j knowledge graph using semantic similarity search.
Features
- Metadata Retrieval: Fetches structured metadata from SharePoint's 'Documents' library
- Entity Retrieval: Queries a Neo4j knowledge graph using semantic similarity to find relevant entities and their relationships
- FastMCP Integration: Built on top of FastMCP framework for tool management and execution
Prerequisites
- Python 3.x
- Neo4j database
- SharePoint access credentials
- OpenAI API key (for semantic search)
Installation
- Clone the repository:
git clone <repository-url>
cd mcp-server
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Configure environment variables:
Create a
.envfile with the following variables:
SHAREPOINT_URL=
SHAREPOINT_USERNAME=
SHAREPOINT_PASSWORD=
SHAREPOINT_LIBRARY_NAME=
NEO4J_URI=
NEO4J_USER=
NEO4J_PASSWORD=
EMBEDDING_MODEL_ENDPOINT=
EMBEDDING_MODEL_KEY=
EMBEDDING_MODEL_API_VERSION=
EMBEDDING_MODEL_DEPLOYMENT_NAME=
EMBEDDING_MODEL_CHUNK_SIZE=
EMBEDDING_MODEL_DIMENSION=
EMBEDDING_MODEL_CHUNK_OVERLAP=
Usage
- Start the server:
python mcp_server.py
- The server provides two main tools:
metadata_retrieve: Retrieves structured metadata from SharePointentity_retrieve: Queries the knowledge graph using semantic similarity
Project Structure
.
├── mcp_server.py # Main server application
├── settings.py # Configuration management
├── services/ # Service implementations
│ ├── graph_store.py # Neo4j graph operations
│ └── sharepoint.py # SharePoint integration
├── requirements.txt # Project dependencies
└── .env # Environment variables
Dependencies
- langchain-mcp-adapters
- mcp[cli]
- langchain_openai
- pinecone
- langchain
- langchain_neo4j
- office365-rest-python-client
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.