ask-habib-mcp
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., "@ask-habib-mcpWhat has Habib Ur Rehman published on deepfake detection?"
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.
ask-habib-mcp
An MCP (Model Context Protocol) server that exposes Habib Ur Rehman's professional profile — five 2025 publications and a CV summary — as tools and a resource that any MCP client (Claude Desktop, a website chat-widget backend, an agent) can query.
The problem
Recruiters and collaborators ask chatbots about Habib and get hallucinations:
invented papers, wrong venues, phantom affiliations. This server is a small,
grounded, citable source of truth. A chatbot with ask-habib-mcp connected
answers "what did Habib publish on deepfakes?" from the actual corpus instead
of making something up.
Related MCP server: portfolio-mcp
Architecture
MCP client (Claude Desktop / chat-widget backend / agent)
│ JSON-RPC 2.0
▼
stdio transport
│
▼
askhabib.server (MCPServer, package: askhabib)
├─ tools: list_publications, get_publication,
│ search_publications, get_profile, get_links
└─ resources: profile://habib/cv (Markdown CV)
│
▼
askhabib.data (ground-truth corpus — titles, venues, years;
summaries flagged draft: True)
│
no network calls, everThe corpus lives in-process (askhabib/data.py); every tool call is a local
function call wrapped as an MCP tool. Nothing leaves the machine.
Quickstart (< 5 minutes)
git clone https://github.com/habib-analyst/ask-habib-mcp
cd ask-habib-mcp
pip install -r requirements.txt
pip install .
# sanity check — runs a real stdio MCP session against the server
python -m askhabib.demo_clientClaude Desktop
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"ask-habib": {
"command": "ask-habib-server",
"args": []
}
}
}If you installed without the console script, use the fallback instead:
{
"mcpServers": {
"ask-habib": {
"command": "python",
"args": ["-m", "askhabib.server"]
}
}
}Restart Claude Desktop, then ask: "What has Habib Ur Rehman published on federated learning?"
Example session
Real transcript, captured from python -m askhabib.demo_client against the
stdio server:
>>> client: starting ask-habib MCP server over stdio
<<< server: hello — ask-habib (protocol 2025-11-25)
<<< server: tools available: list_publications, get_publication, search_publications, get_profile, get_links
>>> client: search_publications(query="deepfake")
<<< server: 1 match(es):
- Multimodal-FNet: Unparametrized Token Mixing for Multimodal Deepfake Detection
(summaries are drafts pending his verification)
>>> client: get_publication(publication_id="p1")
<<< server: Revolutionizing medical imaging: A cutting-edge AI framework with vision transformers and perceiver IO for multi-disease diagnosis
Computational Biology and Chemistry, 2025 (published)
summary: Hybrid framework combining Vision Transformers with Perceiver IO for multi-disease diagnosis across imaging domains including MRI, CT/X-ray, and dermoscopic images. Evaluated on Stroke, Alzheimer's, Tinea, Melanoma, Pneumonia, and Lung Cancer cases. Ships with
... [truncated]
>>> client: get_profile()
<<< server: Habib Ur Rehman — ML/AI Engineer
ML/AI Engineer at SANWA SYSTEM SERVICE CO. LTD
BS Data Analytics, Government College University Faisalabad (2021-2025)
skills: Python, PyTorch, TensorFlow, Hugging Face, LangChain/LangGraph, ...
>>> client: read_resource('profile://habib/cv')
<<< server: Markdown CV (3890 chars), opens with: '# Habib Ur Rehman'
>>> client: session closedHonest note: draft summaries
Titles, venues, and years in this corpus are exact. The 2–3 sentence summary on
each paper is a draft written from the title and venue description, pending
verification by Habib himself — every record carries "draft": true, every
full-record response includes a summary_note, and the server instructs
connected clients to say so when quoting a summary. Treat summaries as a
starting point, not as his words.
Tools & resources
Name | Type | What it returns |
| tool | id / title / venue / year for all 5 papers (JSON) |
| tool | full record for one id ( |
| tool | keyword search over titles + summaries + venues (JSON) |
| tool | CV summary: bio, role, education, skills, interests, contact (JSON) |
| tool | GitHub, LinkedIn, website, email (JSON) |
| resource | the profile rendered as Markdown |
Roadmap
Replace draft summaries with Habib-verified text (
draft: false)Add arXiv/DOI/publisher links per paper
Wire into the habib.top "Chat with Habib" widget backend
Optional: publication/talk resources beyond the static corpus
Spec
Built against the Model Context Protocol specification
using the official mcp Python SDK (stdio transport).
License
MIT — see LICENSE. © 2026 Habib Ur Rehman.
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only MCP over an agentic SLR workspace with per-claim citation verification
Read-only MCP over an agentic SLR workspace with per-claim citation verification
AI research grounded in 300M scientific works — every citation a verifiable DOI.
Read-only MCP over the LivingMeta AI-in-Research corpus: 12,400 papers, gaps, priority agenda.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceExposes a person's structured professional profile as MCP tools, enabling Claude and other MCP clients to answer questions about that person based on real data.6 npm1MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to query the author's career, projects, publications, and technical documents through read-only MCP tools.-
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients such as Claude to search over 450,000+ open-access papers, standards, and legal documents, download PDFs, retrieve citations, and fetch full document metadata.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to query a person's CV and portfolio content via MCP tools and resources, returning grounded answers from local markdown data instead of relying on resume parsing.-