MCP-NLP is a Python package for Natural Language Processing tasks using the MCP
Project description
mcp-nlp
MCP-NLP is a FastMCP application designed to provide NLP (Natural Language Processing) capabilities using the Model Context Protocol (MCP).
- FastMCP Framework v2: A modern framework for fast, Pythonic way to build MCP servers.
- Model Context Protocol (MCP): A protocol that allows for the management and control of LLM contexts.
- NLP-modules
textdistance: A module for calculating text distance metrics
Prerequisites
Before you begin, ensure you have the following installed:
Installation
-
Clone the repository:
git clone https://github.com/tivaliy/mcp-nlp.git cd mcp-nlp
-
Install dependencies (using
uv):uv sync
Configuration
Authentication Modes
The MCP-NLP server supports two authentication modes:
-
Unauthenticated Mode (default):
- No API key required to access the server
- Set environment variable
API_KEY_ENABLED=False
-
API Key Authentication:
- Requires a valid API key in the request header
- Set environment variable
API_KEY_ENABLED=TrueandAPI_KEY=your-secret-key - By default, the header name is
X-API-Key(can be customized withAPI_KEY_NAME)
Example .env file:
# Authentication configuration
API_KEY_ENABLED=True
API_KEY=not-a-secret
# API_KEY_NAME=X-API-Key # Optional: customize header name
Available Tools
The MCP-NLP server currently provides the following MCP tools:
Text Distance Module
Calculate similarity/distance between text sequences using various algorithms:
-
#textdistance_measure:- Purpose: Measures text distance between two sequences of strings
- Parameters:
source(required): The source text stringreference(required): The reference text string to compare againstalgorithm(optional): The algorithm to use (default:levenshtein)metric(optional): The metric to use (default:normalized_similarity)
- Returns: A float value representing the calculated distance/similarity
-
#textdistance_list_metrics:- Purpose: Lists all supported metrics for text distance algorithms
- Parameters: None
- Returns: A list of available metrics:
distance,similarity,normalized_distance,normalized_similarity,maximum
-
Supported Metrics:
distance: Raw distance scoresimilarity: Raw similarity scorenormalized_distance: Distance normalized to a 0-1 scalenormalized_similarity: Similarity normalized to a 0-1 scale (default)maximum: Maximum possible value for the algorithm
-
Default Algorithm:
Levenshtein
Usage
Local Running
To run the application locally:
-
Start the FastMCP application:
mcp-nlp --transport streamable-http
-
Access the MCP server endpoint at
http://127.0.0.1:8000/mcp(in case ofstreamable-httptransport)
Run MCP Server Using Docker
To run the MCP server in a Docker container:
-
Build the Docker image:
docker build -t mcp-nlp .
-
Run the Docker container:
docker run --rm -e TRANSPORT=streamable-http -p 8000:8000 mcp-nlp
-
Access the MCP server endpoint at
http://127.0.0.1:8000/mcp(in case ofstreamable-httptransport)
Make sure to set the TRANSPORT environment variable to streamable-http or sse when running the Docker container.
VS Code Integration
To use the MCP-NLP server with VS Code:
-
Make sure your MCP-NLP server is running
-
Add the server configuration to your VS Code
settings.json(usingstdiotransport):{ "servers": { "mcp-nlp": { "type": "stdio", "command": "${workspaceFolder}/.venv/bin/mcp-nlp", "env": { "API_KEY_ENABLED": "false" } } } }
-
Enable MCP in VS Code:
"chat.mcp.enabled": true, "github.copilot.advanced": { "mcp.enabled": true }
-
You can now use the MCP-NLP tools directly in VS Code through GitHub Copilot
MCP | Model Context Protocol | FastMCP | NLP
License
This project is licensed under the MIT License. See the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_nlp-0.0.1.tar.gz.
File metadata
- Download URL: mcp_nlp-0.0.1.tar.gz
- Upload date:
- Size: 54.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ea27cad071260d3cfa15bdb77d5dad95a99868dca953076de8c5db2f5d4feac
|
|
| MD5 |
5338759d4f25e8edcb88f1d500a3aacf
|
|
| BLAKE2b-256 |
786b223325f2db801307a5d5d9c44e1f2c220441b81df1bca0b2b2a8743b0856
|
File details
Details for the file mcp_nlp-0.0.1-py3-none-any.whl.
File metadata
- Download URL: mcp_nlp-0.0.1-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3c99fafc7a0b2fb4e9bcc243222a190de6ea6820248287342ae64726cd5fe10
|
|
| MD5 |
5dd1106a2b6c2b56d89f009429052c3c
|
|
| BLAKE2b-256 |
c58b71ffb3b594f68e042a53dbe364169d4a1e20013480a76dc3ffcbe56115bb
|