Skip to main content
Glama
README.md3.93 kB
# Legal MCP Server A Model Context Protocol (MCP) compliant server for legal document analysis using Azure Blob Storage and Anthropic Claude API. ## Features - **Document Management**: List and retrieve pre-loaded `.txt` documents from Azure Blob Storage - **Prompt Library**: Manage curated prompts for legal document analysis - **Streaming Analysis**: Execute document analysis with real-time progress updates via MCP progress notifications - **MCP SSE Transport**: Full compliance with MCP specification using Server-Sent Events ## Prerequisites - Node.js 18+ - Azure Storage Account with: - `documents-texts` container (for `.txt` documents) - `prompts` container (for prompt library JSON) - Anthropic Claude API key with credits ## Setup 1. **Clone and install dependencies:** ```bash git clone <your-repo-url> cd Legal-MCP npm install ``` 2. **Configure environment variables:** ```bash cp .env.example .env # Edit .env with your actual values ``` 3. **Upload initial prompt library to Azure:** ```bash # Using Azure CLI (after setting up connection) az storage blob upload \ --account-name legalmcpstore \ --container-name prompts \ --name "library.json" \ --file ./prompts/library.json \ --connection-string "$AZURE_STORAGE_CONNECTION_STRING" ``` 4. **Upload documents to Azure:** ```bash # Upload `.txt` files to the documents-texts container az storage blob upload \ --account-name legalmcpstore \ --container-name documents-texts \ --name "your-document.txt" \ --file ./path/to/your-document.txt \ --connection-string "$AZURE_STORAGE_CONNECTION_STRING" ``` ## Running Locally **Development mode (with auto-reload):** ```bash npm run dev ``` **Production mode:** ```bash npm run build npm start ``` The server will start on `http://localhost:3000` (or the port specified in `PORT` env var). ## MCP Client Configuration ### Claude Desktop Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS): ```json { "mcpServers": { "legal-mcp": { "command": "node", "args": ["/absolute/path/to/Legal-MCP/dist/index.js"], "env": { "AZURE_STORAGE_CONNECTION_STRING": "...", "ANTHROPIC_API_KEY": "..." } } } } ``` **Note**: For SSE transport, you'll need to configure the HTTP endpoint instead. See MCP documentation for SSE client setup. ### Testing with MCP Inspector You can test the server using the MCP Inspector or any MCP-compatible client: ```bash # Server should be running on http://localhost:3000/mcp # Use an MCP client that supports SSE transport ``` ## Available Tools 1. **list_documents**: Returns all available `.txt` documents 2. **list_prompts**: Lists available analysis prompts (with optional search) 3. **get_prompt**: Retrieves full prompt details by ID 4. **add_prompt**: Adds a new user-contributed prompt 5. **execute_analysis**: Executes document analysis with streaming progress updates ## Project Structure ``` legal-mcp/ ├── src/ │ ├── index.ts # MCP server entry point │ ├── storage/ │ │ ├── azure-blob.ts # Azure Blob Storage client │ │ └── prompts.ts # Prompt library management │ ├── claude/ │ │ └── client.ts # Claude API client with streaming │ ├── tools/ │ │ ├── documents.ts # Document listing tool │ │ ├── prompts.ts # Prompt management tools │ │ └── execute.ts # Analysis execution tool │ └── types.ts # Shared TypeScript types ├── prompts/ │ └── library.json # Initial prompt library └── package.json ``` ## Deployment to Azure See the deployment section in the original plan for Azure App Service deployment instructions. ## License ISC

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MCP-Agent766/Legal-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server