MCP Tools Lab
Use MCP Tools Lab as a local MCP server or Python library to perform seven text/data tasks without API keys or outbound requests.
analyze_text: Count Unicode characters, words, lines, approximate sentences, and the 10 most frequent words.
process_json: Validate, pretty-print (two-space indent), or minify JSON; optionally sort keys.
inspect_csv: Report headers, data-row counts, missing/empty cells, and ragged records.
hash_text: Generate lowercase hex SHA-256, SHA-512, or BLAKE2b hashes of UTF-8 text.
compare_text: Create a unified line diff and count added/removed lines, ignoring line-ending style and final newline.
convert_timestamp: Convert Unix seconds to UTC ISO 8601, or an offset-aware ISO date to Unix seconds.
inspect_url: Split an absolute URL into components without visiting it.
Click on "Deploy 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 Tools Lab pretty-print this JSON and sort keys: {"b":2,"a":1}"
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 Tools Lab
Seven local developer tools. One Python MCP server.
MCP Tools Lab brings everyday text and data utilities into a single MCP server. Format JSON, inspect CSV, compare text, generate hashes, convert timestamps, and inspect URLs from an MCP client or directly from Python. Every tool runs locally: no API keys, AI models, paid services, or outbound requests. Internet access is needed only to download dependencies during setup.
MCP (Model Context Protocol) lets a compatible application discover and call tools. This project exposes all seven through one local standard-input/output server. You can also call the Python functions directly, without an MCP client or model.
The seven tools
analyze_text— count characters, words, lines, approximate sentences, and the ten most frequent words.process_json— validate, pretty-print, or minify JSON; optionally sort keys.inspect_csv— show headers, data-row counts, missing values, and inconsistent row lengths.hash_text— create SHA-256, SHA-512, or BLAKE2b hashes of UTF-8 text.compare_text— generate a unified line diff and count added and removed lines.convert_timestamp— convert Unix seconds and timezone-aware ISO 8601 dates.inspect_url— split a URL into its components without visiting it.
Related MCP server: buildutilities-mcp
Quick start
Install Python 3.10 or newer and Git. Then:
git clone https://github.com/github-community-gitam/MCP-tools-lab.git
cd MCP-tools-lab
python -m venv .venvActivate your environment:
# Windows PowerShell
.venv\Scripts\Activate.ps1# macOS / Linux
source .venv/bin/activateIf Windows blocks activation, use .venv\Scripts\python.exe instead of python
in the following commands; changing your execution policy is unnecessary.
On systems where the command is python3, use that to create the environment.
python -m pip install .
python examples/try_tools.pyConnect an MCP client
Run the server with python -m mcp_tools_lab or mcp-tools-lab.
It waits for MCP messages on standard input; a quiet terminal is normal.
Stop a manually started server with Ctrl+C. Usually your MCP client starts it for you.
For clients that accept an mcpServers configuration, use this example and replace
the executable with the absolute path to your virtual environment's Python:
{
"mcpServers": {
"mcp-tools-lab": {
"command": "C:/path/to/MCP-tools-lab/.venv/Scripts/python.exe",
"args": ["-m", "mcp_tools_lab"]
}
}
}On macOS/Linux, the executable is /absolute/path/to/MCP-tools-lab/.venv/bin/python.
Client configuration locations vary; use your client's local stdio server settings.
The project uses the official Python MCP SDK's v1 API
and bounds its dependency below v2 to avoid incompatible API changes.
Try tools with ordinary Python
from mcp_tools_lab.tools.json_tool import process_json
from mcp_tools_lab.tools.timestamps import convert_timestamp
print(process_json('{"b":2,"a":1}', sort_keys=True))
print(convert_timestamp("0"))
# {'unix_seconds': 0.0, 'iso_utc': '1970-01-01T00:00:00Z'}See examples/try_tools.py for all seven functions and docs/tool-guide.md for inputs, results, and edge cases.
Project layout
src/mcp_tools_lab/
server.py # Registers the seven tools
tools/ # One small Python module per tool
tests/ # Tool tests and a real MCP round-trip test
examples/try_tools.py # Run all tools without a model or MCP client
docs/tool-guide.md # Input/output behaviorAll application, example, and test code is Python. TOML and Markdown provide packaging configuration and documentation; no JavaScript or frontend is required. Tools accept supplied strings, do not read arbitrary files, and process inputs in memory. The server is designed for local use with small text inputs.
License
This project is released under the MIT License.
Contributors
Available Tools
7 toolsanalyze_textA
Count Unicode words, characters, lines, and approximate sentences.
Words are letter/digit sequences (apostrophes within words are kept). Sentences are nonempty pieces separated by '.', '!', or '?'. This is a simple heuristic, not linguistic analysis.
Inputs: text (required).
compare_textB
Return a unified diff and counts; ignore line-ending style and final newline.
Inputs: after (required), before (required).
convert_timestampA
Convert Unix seconds to UTC ISO 8601, or an offset-aware ISO date to seconds.
ISO input must include a time and timezone, such as 2026-01-01T12:00:00+05:30.
Inputs: value (required), direction.
hash_textA
Hash UTF-8 text using SHA-256, SHA-512, or BLAKE2b; return lowercase hex.
Inputs: text (required), algorithm.
inspect_csvA
Report rows, empty cells, and ragged records (record 1 is the header).
Missing counts include absent trailing cells and whitespace-only cells. Entirely blank records are skipped by Python's CSV reader.
Inputs: text (required).
inspect_urlC
Inspect an absolute URL with a hostname; preserve repeated/blank query values.
Inputs: url (required).
process_jsonC
Validate or format JSON using Python numbers; pretty output uses two spaces.
Inputs: text (required), action, sort_keys.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose: text analysis, JSON processing, CSV inspection, hashing, text comparison, URL inspection, and timestamp conversion. There is no overlap in functionality, and the descriptions make the boundaries explicit.
Most tool names follow a verb_noun pattern (analyze_text, process_json, inspect_csv, hash_text, compare_text, inspect_url, convert_timestamp). The consistency is strong, though the verbs vary (analyze, process, inspect, hash, compare, convert) which is appropriate for the diverse actions but slightly reduces uniformity.
With 7 tools, the server is well-scoped for a utility toolkit. Each tool addresses a specific common task without redundancy, making the set feel complete and purposeful.
The tools cover a range of common text and data operations (text analysis, JSON, CSV, hashing, diffing, URL parsing, timestamp conversion). However, some potentially related operations like base64 encoding or other hash algorithms are missing, though these are not critical for the stated scope.
Maintenance
Related MCP Connectors
Remote MCP for JSON repair, hashing, formatting, IDs, dates, units, and other small tools.
Developer utilities over MCP: Base64 encode and decode, decode JWTs, format JSON, do percentages.
238+ dev tools via MCP: JSON, QR, PDF, DNS, hash, UUID, code review, JWT, SSL, WHOIS, and more
Free hosted dev toolkit: uuid, hash, base64, JWT decode, CSV->JSON, time, JSON tools as MCP
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to perform common utility tasks through a streamable HTTP MCP endpoint, including JSON inspection, regex testing, cron parsing, hashing, base64 encoding/decoding, URL analysis, color conversion, text diffing, CSV parsing, JWT decode/verification, Markdown-to-HTML rendering, and UUID/token generation without API keys.MIT
- AlicenseAqualityCmaintenanceProvides deterministic developer utilities as MCP tools, including UUID/password generation, hashing, encoding, JWT decoding, cron scheduling, regex execution, and text analysis. Runs entirely locally with no network calls, telemetry, or API keys.20106 npmMIT
- AlicenseNot gradedqualityCmaintenanceExposes 24 deterministic developer utilities as MCP tools — encoders and hashers, UUID/ULID and timestamp helpers, color, CSS, cron and permission converters, JSON/YAML/XML/SQL/TypeScript transformers, and a web page-to-markdown fetcher. Runs locally over stdio so agents get byte-exact results instead of approximating computations, with only the markdown fetcher making network requests.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to perform everyday developer chores as MCP tools — organizing and batch-renaming files, searching contents, hashing, converting timestamps, encoding/decoding, converting CSV and JSON, OCR, clipboard and screenshot access, zipping, running allowlisted commands, and managing processes. Destructive actions default to dry-run previews, and commands, renames, and process kills are constrained by allowlists and PID-plus-name matching so agents stay safe.4MIT