Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP SOP Serversearch for procedures about handling customer complaints"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP SOP Server
A Model Context Protocol (MCP) server for accessing and searching Standard Operating Procedures (SOPs) with Italian language support.
Overview
This MCP server provides AI agents with the ability to:
Search through your company's SOP documentation using semantic search
Retrieve relevant procedures based on specific situations
Browse SOPs by category
Get guidance on what to do in specific scenarios
The server uses:
ChromaDB for vector storage and semantic search
Sentence Transformers with multilingual models for Italian language support
FastMCP for the MCP server implementation
RAG (Retrieval Augmented Generation) for intelligent document retrieval
Features
๐ฎ๐น Italian Language Support: Uses multilingual embeddings optimized for Italian text
๐ Multi-format Support: Processes PDF and DOCX documents
๐ Semantic Search: Find relevant SOPs based on meaning, not just keywords
๐ Category Filtering: Search within specific SOP categories
๐ค AI-Ready: Provides structured responses perfect for LLM consumption
โก Fast Retrieval: Efficient vector-based search with ChromaDB
๐ Lazy Initialization: Server starts quickly, documents are indexed on first request
Installation
Clone the repository:
git clone https://github.com/dadapera/mcp-sop-server.git cd mcp-sop-serverCreate and activate virtual environment:
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateInstall Dependencies:
pip install -r requirements.txtAdd your SOP documents: Create a
sop_documents/directory and organize your SOP files by category folders.
Configuration
MCP Client Setup
To use this server with Claude Desktop or other MCP clients, add it to your MCP client configuration:
For Claude Desktop (mcp-client-config.json):
Note: Make sure to use the full path to your virtual environment's Python executable and adjust paths according to your system.
Directory Structure
The server expects SOP documents to be organized as follows:
Usage
Starting the Server
The server is typically started automatically by your MCP client (like Claude Desktop). If running manually:
The server will:
Start quickly and wait for connections
On first tool call: scan all SOP documents in the
sop_documents/directoryProcess and extract text from PDF and DOCX files
Generate embeddings using the multilingual model
Store everything in ChromaDB for fast retrieval
Available Tools
The server provides the following MCP tools:
1. search_sop_documents
Search for relevant SOP content using natural language queries.
Parameters:
query(string): Search query in Italian or Englishmax_results(int, optional): Maximum results to return (default: 5)category(string, optional): Filter by SOP category
Example:
2. get_sop_guidance
Get specific guidance for a situation based on SOP documents.
Parameters:
situation(string): Description of the situationcategory(string, optional): Focus search on specific category
Example:
3. list_sop_categories
Get all available SOP categories and collection statistics.
4. get_sop_by_category
Retrieve all SOPs within a specific category.
Parameters:
category(string): SOP category name
5. refresh_sop_database
Refresh the document database (use when SOPs are updated).
6. get_server_status
Get current server status and statistics.
Technical Configuration
Embedding Model
The server uses sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 by default for Italian language support. You can change this in src/mcp_sop_server/document_searcher.py:
Chunk Size
Text chunking can be adjusted in src/mcp_sop_server/document_processor.py:
Database Location
ChromaDB storage location is automatically set to chroma_db/ in the project root.
Example Queries
Here are some example queries you can use:
Italian:
"Come gestire una non conformitร ?"
"Procedura per la manutenzione dell'infrastruttura"
"Cosa fare in caso di audit interno?"
"Gestione del magazzino e inventario"
English:
"How to handle quality issues?"
"Software development lifecycle procedures"
"Risk management protocols"
"Employee training requirements"
Troubleshooting
Common Issues
No documents found: Ensure SOP documents are in the correct directory structure
Embedding model download: First run may take time to download the multilingual model
Memory usage: Large document collections may require more RAM for embedding generation
Path issues: Make sure to use absolute paths in your MCP client configuration
Logs
The server provides detailed logging with emojis for better readability:
๐ Server startup and initialization
๐ Document processing status
๐ Processing statistics
โ Success messages
โ Error messages
Check the console output or your MCP client logs for detailed information.
Development
Project Structure
Adding New Document Types
To support additional file formats, extend the DocumentProcessor class:
Custom Search Logic
Modify the DocumentSearcher class to implement custom search algorithms or filters.
Additional Tools
Add new MCP tools by defining them with the @mcp.tool() decorator in mcp_server.py.
License
This project is intended for internal company use for accessing SOP documentation.
Support
For issues or questions about the SOP MCP server, create an issue on the GitHub repository.