Mhlabs Mcp Tools

io.github.MusaddiqueHussainLabs由 GitHub 帳號 MusaddiqueHussainLabs 發布v3.0.0更新於 Nov 3, 2026

An MCP server that provides text preprocessing, NLP components, and document analysis

已驗證STDIO僅桌面資料與分析AI 與機器學習

概覽

AI 產生的概覽

在本機執行的 Python MCP 伺服器,提供文字前處理、NLP 元件與文件分析工具,用來清理與分析文字。

可以做什麼
  • 清理文字:大小寫轉換,移除數字、網址、標點、特殊字元、多餘空白、HTML、表情符號與顏文字
  • 移除或遮蔽電子郵件、電話號碼、社會安全號碼(SSN)與信用卡號等敏感樣式
  • 正規化文字:Unicode 正規化、縮寫展開、聊天用語與表情轉文字、移除停用詞、高頻詞與低頻詞
  • 斷詞:依詞與依句切分,並進行詞幹化與詞形還原
  • 執行 NLP 元件:詞性標註、詞形學、依存句法分析、命名實體辨識與正規化
  • 透過一個組合前處理函式串接多個處理步驟
適用情境
適合在分析前需要清理、去識別化或正規化原始文字的情境,也適合在本機完成斷詞、詞性標註、詞形還原與實體辨識等基礎 NLP 工作,而不必把文字送到外部服務。
執行需求
以本機 Python 程序執行,從 PyPI 套件 mhlabs-mcp-tools 安裝,並以 pip 安裝相依套件(含 fastmcp)。預設使用 STDIO 傳輸;HTTP/SSE 模式會佔用連接埠。選用的 Azure AD 驗證透過環境變數設定,例如 MCP_ENABLE_AUTH、AZURE_TENANT_ID、AZURE_CLIENT_ID、AZURE_JWKS_URI、AZURE_ISSUER 與 AZURE_AUDIENCE。
安裝前請注意
送入工具的文字由本機伺服器處理;若改用 HTTP 傳輸並綁定非本機位址,端點可能被他人存取。驗證為選用功能,可用 MCP_ENABLE_AUTH=false 或關閉驗證參數停用,共用部署時應保持開啟。Azure AD 設定透過環境變數提供,應避免提交到版本控制。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Mhlabs Mcp Tools,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

mhlabs-mcp-tools

mcp-name: io.github.MusaddiqueHussainLabs/mhlabs_mcp_tools

🧠 mhlabs-mcp-tools

mhlabs-mcp-tools is a Modular MCP Tools Server built using FastMCP.
It provides an extendable AI tool ecosystem organized into functional categories (Text Preprocessing, NLP Components, Document Analysis, etc.) that can be dynamically loaded and served through MCP (Model Context Protocol) via STDIO transport.

This project is part of the MHLabs AI Agentic Ecosystem, designed to work with mhlabs-mcp-server, mhlabs-mcp-agents, and downstream A2A agent frameworks.


Features

  • FastMCP Server: Pure FastMCP implementation supporting multiple transport protocols
  • Factory Pattern: Reusable MCP tools factory for easy service management
  • Domain-Based Organization: Services organized by business domains (HR, Tech Support, etc.)
  • Authentication: Optional Azure AD authentication support
  • Multiple Transports: STDIO, HTTP (Streamable), and SSE transport support
  • VS Code Integration: Debug configurations and development settings
  • Comprehensive Testing: Unit tests with pytest
  • Flexible Configuration: Environment-based configuration management

Architecture

mhlabs_mcp_tools/├── .gitignore├── .vscode/│   └── settings.json├── CHANGELOG.md├── LICENSE├── README.md├── docs/│   └── index.md├── examples/│   ├── example_client.py│   └── example_client_http.py├── mkdocs.yml├── pyproject.toml├── requirements.txt├── server.json└── src/    ├── __init__.py    ├── main.py    └── mhlabs_mcp_tools/        ├── __init__.py        ├── core/        │   ├── __init__.py        │   ├── config.py        │   ├── constants.py        │   ├── factory.py        │   └── prompts.py        ├── data/        │   ├── __init__.py        │   ├── external/        │   │   └── __init__.py        │   ├── interim/        │   │   └── __init__.py        │   ├── processed/        │   │   └── __init__.py        │   └── raw/        │       ├── __init__.py        │       ├── contractions_dict.json        │       ├── custom_substitutions.csv        │       ├── leftovers_dict.json        │       └── slang_dict.json        ├── handlers/        │   ├── __init__.py        │   ├── custom_exceptions.py        │   └── output_generator.py        ├── mcp_server.py        ├── models/        │   └── __init__.py        ├── nlp_components/        │   ├── __init__.py        │   └── nlp_model.py        ├── services/        │   ├── __init__.py        │   ├── langchain_framework.py        │   └── spacy_extractor.py        └── text_preprocessing/            ├── __init__.py            ├── contractions.py            ├── emo_unicode.py            ├── slang_text.py            └── text_preprocessing.py

Available Services

Currently the package is organized into three primary modules:

1. NLP Components

Component TypeDescription
tokenizeText tokenization
posPart-of-Speech tagging
lemmaWord lemmatization
morphologyStudy of word forms
depDependency parsing
nerNamed Entity Recognition
normText normalization

2. Text Preprocessing

This module equips users with an extensive set of text preprocessing tools:

FunctionDescription
to_lowerConvert text to lowercase
to_upperConvert text to uppercase
remove_numberRemove numerical characters
remove_itemized_bullet_and_numberingEliminate itemized/bullet-point numbering
remove_urlRemove URLs from text
remove_punctuationRemove punctuation marks
remove_special_characterRemove special characters
keep_alpha_numericKeep only alphanumeric characters
remove_whitespaceRemove excess whitespace
normalize_unicodeNormalize Unicode characters
remove_stopwordEliminate common stopwords
remove_freqwordsRemove frequently occurring words
remove_rarewordsRemove rare words
remove_emailRemove email addresses
remove_phone_numberRemove phone numbers
remove_ssnRemove Social Security Numbers (SSN)
remove_credit_card_numberRemove credit card numbers
remove_emojiRemove emojis
remove_emoticonsRemove emoticons
convert_emoticons_to_wordsConvert emoticons to words
convert_emojis_to_wordsConvert emojis to words
remove_htmlRemove HTML tags
chat_words_conversionConvert chat language to standard English
expand_contractionExpand contractions (e.g., "can't" to "cannot")
tokenize_wordTokenize words
tokenize_sentenceTokenize sentences
stem_wordStem words
lemmatize_wordLemmatize words
preprocess_textCombine multiple preprocessing steps into one function

Quick Start

Development Setup

  1. Clone and Navigate:

    bash
    cd src/mhlabs_mcp_tools
  2. Install Dependencies:

    bash
    pip install -r requirements.txt
  3. Configure Environment:

    bash
    cp .env.example .env# Edit .env with your configuration
  4. Start the Server:

    bash
    # Default STDIO transport (for local MCP clients)python mcp_server.py
    # HTTP transport (for web-based clients)python mcp_server.py --transport http --port 9000orafter installed mhlabs-mcp-toolspython -m mhlabs_mcp_tools.mcp_server --transport http --port 9000
    # Using FastMCP CLI (recommended)fastmcp run mcp_server.py -t streamable-http --port 9000 -l DEBUG
    # Debug mode with authentication disabledpython mcp_server.py --transport http --debug --no-auth

Transport Options

1. STDIO Transport (default)

  • 🔧 Perfect for: Local tools, command-line integrations, Claude Desktop
  • 🚀 Usage: python mcp_server.py or python mcp_server.py --transport stdio

2. HTTP (Streamable) Transport

  • 🌐 Perfect for: Web-based deployments, microservices, remote access
  • 🚀 Usage: python mcp_server.py --transport http --port 9000
  • 🌐 URL: http://127.0.0.1:9000/mcp/

3. SSE Transport (deprecated)

  • ⚠️ Legacy support only - use HTTP transport for new projects
  • 🚀 Usage: python mcp_server.py --transport sse --port 9000

FastMCP CLI Usage

bash
# Standard HTTP serverfastmcp run mcp_server.py -t streamable-http --port 9000 -l DEBUG
# With custom hostfastmcp run mcp_server.py -t streamable-http --host 0.0.0.0 --port 9000 -l DEBUG
# STDIO transport (for local clients)fastmcp run mcp_server.py -t stdio
# Development mode with MCP Inspectorfastmcp dev mcp_server.py -t streamable-http --port 9000

VS Code Development

  1. Open in VS Code:

    bash
    code .
  2. Use Debug Configurations:

    • Debug MCP Server (STDIO): Run with STDIO transport
    • Debug MCP Server (HTTP): Run with HTTP transport
    • Debug Tests: Run the test suite

Configuration

Environment Variables

Create a .env file based on .env.example:

env
# Server SettingsMCP_HOST=0.0.0.0MCP_PORT=9000MCP_DEBUG=falseMCP_SERVER_NAME=MHLABS MCP Server
# Authentication SettingsMCP_ENABLE_AUTH=trueAZURE_TENANT_ID=your-tenant-id-hereAZURE_CLIENT_ID=your-client-id-hereAZURE_JWKS_URI=https://login.microsoftonline.com/your-tenant-id/discovery/v2.0/keysAZURE_ISSUER=https://sts.windows.net/your-tenant-id/AZURE_AUDIENCE=api://your-client-id

Authentication

When MCP_ENABLE_AUTH=true, the server expects Azure AD Bearer tokens. Configure your Azure App Registration with the appropriate settings.

For development, set MCP_ENABLE_AUTH=false to disable authentication.

Adding New Services

  1. Create Service Class:

    python
    from core.factory import MCPToolBase, Domain
    class MyService(MCPToolBase):    def __init__(self):        super().__init__(Domain.MY_DOMAIN)
        def register_tools(self, mcp):        @mcp.tool(tags={self.domain.value})        async def my_tool(param: str) -> str:            # Tool implementation            pass
        @property    def tool_count(self) -> int:        return 1  # Number of tools
  2. Register in Server:

    python
    # In mcp_server.py (gets registered automatically from services/ directory)factory.register_service(MyService())
  3. Add Domain (if new):

    python
    # In core/factory.pyclass Domain(Enum):    # ... existing domains    MY_DOMAIN = "my_domain"

MCP Client Usage

Python Client

python
import asynciofrom fastmcp import Client
client = Client("http://localhost:9000/mcp")
async def main():    async with client:        tools = await client.list_tools()        # tools -> list[mcp.types.Tool]        # print(tools)        for tool in tools:            print(f"Tool: {tool.name}")                result = await client.call_tool("textprep.expand_contraction", {"input_text": "The must've SSN is 859-98-0987. The employee's phone number is 555-555-5555."})        print("Result:", result)
asyncio.run(main())

Command Line Testing

bash
# Test the server is runningcurl http://localhost:9000/mcp/
# With FastMCP CLI for testingfastmcp dev mcp_server.py -t streamable-http --port 9000

Quick Test

Test STDIO Transport:

bash
# Start server in STDIO modepython mcp_server.py --debug --no-auth
# Test with client_example.pypython client_example.py

Test HTTP Transport:

bash
# Start HTTP serverpython mcp_server.py --transport http --port 9000 --debug --no-auth
# Test with FastMCP clientpython -c "from fastmcp import Clientimport asyncioasync def test():    async with Client('http://localhost:9000/mcp') as client:        result = await client.call_tool("textprep.expand_contraction", {"input_text": "The must've SSN is 859-98-0987. The employee's phone number is 555-555-5555."})        print(result)asyncio.run(test())"

Test with FastMCP CLI:

bash
# Start with FastMCP CLIfastmcp run mcp_server.py -t streamable-http --port 9000 -l DEBUG
# Server will be available at: http://127.0.0.1:9000/mcp/

Troubleshooting

Common Issues

  1. Import Errors: Make sure you're in the correct directory and dependencies are installed
  2. Authentication Errors: Check your Azure AD configuration and tokens
  3. Port Conflicts: Change the port in configuration if 9000 is already in use
  4. Missing fastmcp: Install with pip install fastmcp

Debug Mode

Enable debug mode for detailed logging:

bash
python mcp_server.py --debug --no-auth

Or set in environment:

env
MCP_DEBUG=true

Server Arguments

bash
usage: mcp_server.py [-h] [--transport {stdio,http,streamable-http,sse}]                     [--host HOST] [--port PORT] [--debug] [--no-auth]
MHLABS MCP Server
options:  -h, --help            show this help message and exit  --transport, -t       Transport protocol (default: stdio)  --host HOST           Host to bind to for HTTP transport (default: 127.0.0.1)  --port, -p PORT       Port to bind to for HTTP transport (default: 9000)  --debug               Enable debug mode  --no-auth             Disable authentication

📄 License

MIT License © 2025 MusaddiqueHussain Labs


🤝 Contributing

  1. Follow the existing code structure and patterns
  2. Add tests for new functionality
  3. Update documentation for new features
  4. Use the provided VS Code configurations for development

🧠 Learn More


💡 Tip

If you want to embed mhlabs-mcp-tools into a larger MCP-based orchestrator:

python
from fastmcp import StdioServerParametersserver_params = StdioServerParameters(    command="python",    args=["-m", "mhlabs_mcp_tools.server"],    //env={"MHLABS_MCP_CATEGORY": "textprep,nlp"})

Developed with ❤️ by MusaddiqueHussain Labs

來源:README.md,提交 6c1b271

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v3.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分