Mask PII in outbound MCP tool-call arguments, unmask the results. Indian identifiers included.
MCPpedia last refreshed this data
io.github.maskflow/mcp is an MCP server that mask PII in outbound MCP tool-call arguments, unmask the results. Indian identifiers included. Its tool list has not been published yet over stdio, sse and http, requires no API key, and scores 90/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"io-github-maskflow-mcp": {
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Mask PII in outbound MCP tool-call arguments, unmask the results. Indian identifiers included.
Run this in your terminal to verify the server starts. Then let us know if it worked - your result helps other developers.
npx -y '@modelcontextprotocol/server-github' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked @modelcontextprotocol/server-github against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in other
deja-vu: local memory over the session histories of forty-three coding agents.
MCP WordPress Remote proxy server
专门为 agent 打造的 agent 搜索工具,具备多语言搜索能力,覆盖中文/英文/学术/代码/购物/金融/新闻/百科。
Searchable football data provider documentation for AI coding agents. Like Context7 for football data.
MCP Security Weekly
Get CVE alerts and security updates for io.github.maskflow/mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Stop Indian PII from ever reaching an LLM.
Aadhaar, PAN, GSTIN, UPI, IFSC, ABHA, Indian names and addresses — detected and replaced with reversible, typed placeholders before a prompt leaves your process, restored in the response. 28 entity types, checksum-validated where a public checksum exists, MIT-licensed, runs entirely on your own infrastructure.
⭐ Star us on GitHub — if MaskFlow is useful to you, a star helps other teams facing the DPDP deadline find it.
India's DPDP Act sets a compliance deadline of 13 May 2027, with penalties of up to ₹250 crore for a breach where the required safeguards weren't in place. Every prompt sent to an LLM provider is a potential data-sharing event — and general-purpose PII tools weren't built to recognize Aadhaar, PAN, GSTIN, UPI VPAs, IFSC codes, ABHA health IDs, or Indian names and addresses reliably. Presidio already owns generic PII and is more mature everywhere else; MaskFlow exists specifically to close that gap, with accuracy that's measured and published, not asserted. See MaskFlow vs. alternatives.
pip install maskflow-sdk
python -m spacy download en_core_web_sm
from maskflow import mask, unmask
# Synthetic Aadhaar number: passes the Verhoeff checksum, belongs to no one.
result = mask("My Aadhaar is 2346 8907 6549 and you can reach me at alice@example.com.")
result.masked_text
# "My Aadhaar is <AADHAAR_1> and you can reach me at <EMAIL_1>."
unmask(result.masked_text, result.mapping) # original text, restored
For a one-line wrapper around your actual LLM call, or session-scoped masking across a multi-turn
agent (same value → same token for as long as the session is open), see
packages/maskflow-sdk/README.md.
Span. Start/end offsets, entity type, confidence, which recognizer
produced it, whether a checksum validated it, and a human-readable explanation trail. Run
maskflow explain "<text>" (from maskflow-cli) to see that trail for any input, span by span
— including near-misses that fell just below threshold and what config change would catch them.<AADHAAR_1>, <EMAIL_1>, ... — the
same value gets the same token within a session, and if the input text already contains
something that looks like a placeholder, a nonce suffix (<AADHAAR_1_a4f9>) is used instead so
a real placeholder is never ambiguous with attacke