DoctorVerify
Click on "Install 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., "@DoctorVerifyverify that Dr. Meera Sharma is registered with the Maharashtra Medical Council"
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.
DoctorVerify — an MCP server for verifying Indian doctors
Verifies that someone claiming to be a registered Indian doctor actually is one, using live data from the National Medical Commission — while staying honest about exactly what's official, what's undocumented, and what's a manual fallback. Read "How verification actually works here" before you use it; it's the most important part of this README.
What's here
Primitive | Name | What it does |
Tool |
| Live search of the Indian Medical Register by name, registration number, State Medical Council, and/or year |
Tool |
| Live full profile (qualification, university, additional quals) for one match from a search |
Tool |
| Live check of NMC's current suspended/struck-off doctor list |
Tool |
| Manual fallback: the exact official search steps, for when the live lookup fails or a match is ambiguous |
Tool |
| Checks a link against the official domain and known impersonators |
Resource |
| The full landscape — individual lookup, the newer register, and the two sanctioned paths for automated checks at scale |
Prompt |
| A "verify this doctor properly" template chaining the live tools, then blacklist, then qualification match |
Related MCP server: Eka MCP Server
How verification actually works here
The official registry doesn't publish an API for third parties — but it doesn't
need to, for this to work. The authoritative source is the National Medical
Commission's Indian Medical Register (IMR), searchable by the public at
nmc.org.in. Its own search page calls a public, unauthenticated JSON endpoint
(nmc.org.in/MCIRest/open/...) directly from client-side JavaScript to render
results — found by reading that page's own script, not by guessing. search_doctor_registration,
get_doctor_profile, and check_blacklist call that same endpoint, so they return real
IMR data: registration, qualification, university, and current suspension status.
An earlier version of this README claimed nmc.org.in's robots.txt disallows
automated access. That was checked and turned out to be wrong: the file at that path
isn't a standards-format robots.txt at all — it's a misconfigured Apache snippet
blocking a short list of named SEO crawlers (Ahrefs, Majestic, Semrush, ...) by
User-Agent, with no general Disallow directive. The Terms of Use don't prohibit this
either. That's what changed to make live verification here reasonable, where it wasn't
before.
The honest caveat: this endpoint is still undocumented and unsupported by NMC. It
could change shape, get rate-limited, or disappear without notice — there's no SLA,
versioning, or support contract behind it. Treat it as read-only, single-lookup
traffic, not a bulk pipeline (these tools cap result counts and never auto-paginate,
on purpose). registration_lookup_guide stays in the toolset specifically as the
fallback for when the live path breaks or a result looks wrong.
A real trap worth knowing about: while researching this, nmcn.org.in — one letter
off from the real nmc.org.in — turned up ranking for "verify Indian doctor" searches,
displaying IMR-style search content despite not being run by the National Medical
Commission. flag_lookalike_domain catches that one by name and flags anything else
unfamiliar as unreviewed rather than assuming it's safe. Always prefer typing
nmc.org.in yourself over clicking a link from a hospital, agent, or ad — and remember
a live-looking result can still come from a fake site.
If you need automated verification at scale — say, onboarding many doctors into a health-tech platform rather than checking one by hand — there are two more paths, both officially sanctioned (unlike the endpoint above), and both heavier than a weekend project:
Ayushman Bharat Digital Mission (ABDM), Healthcare Professional Registry (HPR). The government's own digital-identity system for doctors, with a real, documented OAuth2 API and a sandbox at
sandbox.abdm.gov.in. It's built for registering and confirming practitioners as part of an accredited health system integration (the M1 module), not anonymous one-off lookups, so onboarding is a genuine integration project — client ID/secret, certification, the works.Commercial KYC/verification vendors (e.g. Surepass, IDfy). Several companies resell NMC-backed doctor verification as a paid, supported API product. That can be the pragmatic choice for production use, but evaluate each vendor's actual data source, freshness, and terms yourself — this project doesn't endorse a specific one.
Setup
Requires Python 3.10+ and uv.
./setup.shThis is a proper installable package (src/doctor_verify_mcp/, pyproject.toml), not
just a loose script. ./setup.sh runs uv sync, which creates .venv (pinned to
Python 3.10 via .python-version) and installs the package plus its dev dependency
group (pytest) in editable mode. Without uv, fall back to
python3 -m venv .venv && source .venv/bin/activate && pip install -e '.[dev]'
(add a [dependency-groups]-to-[project.optional-dependencies] mirror if your pip
version doesn't understand dependency groups yet).
Run it
uv run mcp dev src/doctor_verify_mcp/server.pyOpen the Inspector URL it prints. Try search_doctor_registration with just a name,
then narrow it with a registration number or state_council. Take a doctor_id from
the results and pass it to get_doctor_profile. Try check_blacklist with no
arguments to see the full current list. Try flag_lookalike_domain with nmcn.org.in
and with nmc.org.in and compare. Check the doctor-verification://official-sources
resource for the full picture in one place.
Once installed (editable or from a built wheel), the package also exposes a console
script that runs the server directly over stdio (no Inspector, for wiring into a real
host): uv run doctor-verify-mcp.
Build it
uv buildProduces dist/doctor_verify_mcp-<version>-py3-none-any.whl and a matching .tar.gz
sdist, installable anywhere with pip install dist/doctor_verify_mcp-*.whl.
Test it
uv run pytestThe tests for the three live tools mock the HTTP layer (doctor_verify_mcp.server._http_client)
with NMC's real response shapes captured during development, so the suite doesn't hit
nmc.org.in on every run.
Connect it to a real host
Building an actual integration (e.g. wiring this into a doctor registration/onboarding flow)? See INTEGRATION.md for the full tool reference, a recommended verification flow, the error-handling contract, and known quirks of the live endpoint.
Same pattern as any local MCP server — a host runs your server as a child process over
stdio, so every host needs the same launch command with an absolute path. Once the
package is installed, the doctor-verify-mcp console script is the cleanest launch
target instead of pointing hosts at server.py directly.
Claude Desktop: uv run mcp install src/doctor_verify_mcp/server.py, then fully
quit and reopen the app.
Claude Code:
claude mcp add doctorverify -- uv run --with "mcp[cli]" mcp run /absolute/path/to/src/doctor_verify_mcp/server.pyCursor (.cursor/mcp.json) and VS Code (.vscode/mcp.json) follow the same
command/args shape — see the previous project's README for the exact JSON if you
need a reminder.
Extending this
Add a tool that validates a registration number's shape once you know the format your state council actually uses — they vary enough across states that this project doesn't guess at one.
Add more entries to
KNOWN_LOOKALIKESas you encounter them.If the
MCIRestendpoint ever changes shape or starts blocking automated traffic, the live tools already raise a clear error pointing back toregistration_lookup_guiderather than failing silently — check there first before assuming a doctor doesn't exist.If you go the ABDM/HPR route, a
verify_hpr_idtool that calls the real, documented API (with your own client credentials, never hardcoded in source) would give you a supported alternative to the undocumented endpoint this project uses today.Add a resource per State Medical Council with direct links, for the cases where the IMR doesn't show a result and the fallback is checking a specific state's council site directly.
Available Tools
5 toolscheck_blacklistA
Check the live NMC list of suspended/struck-off doctors.
A doctor can have a completely genuine registration and still be
currently suspended -- search_doctor_registration alone won't show that,
this does. Provide a filter, or nothing to get the full current list
(nationally, this is normally only a few dozen entries).
| Name | Required | Description | Default |
|---|---|---|---|
| doctor_name | No | ||
| state_council | No | ||
| registration_number | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | Yes | |
| entries | Yes | |
| is_listed | Yes | |
| query_note | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing side effects. The word 'check' implies a read-only operation, but it doesn't explicitly state that the tool makes no changes or that data is sourced live. It adds context on the nature of the data (suspended/struck-off) but stops short of explicit safety declarations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short paragraphs with no fluff. The first sentence states the core purpose; the second adds differentiation and usage guidance. It is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return structure is covered. The description covers purpose, differentiation, and the optional filter behavior. It doesn't mention response size limits or failure handling, but these are minor given the simplicity and the presence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions already cover each parameter (doctor_name, state_council, registration_number) with brief fields. The tool description adds only the general note that filters are optional ('Provide a filter, or nothing'), which is helpful but doesn't elaborate on individual parameters. Schema coverage is listed as 0%, but the description provides some compensation via the optionality insight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Check the live NMC list of suspended/struck-off doctors.' It also distinguishes the tool from a sibling, 'search_doctor_registration alone won't show that, this does,' making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use it: for checking suspension beyond registration, and mentions 'Provide a filter, or nothing to get the full current list.' It doesn't explicitly list exclusions or alternative tools, but the contrast with search_doctor_registration gives strong directional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flag_lookalike_domainB
Check whether a link is the official NMC domain or a known lookalike.
| Name | Required | Description | Default |
|---|---|---|---|
| url_or_domain | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| domain | Yes | |
| is_official | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It does indicate a non-destructive classification action ('Check whether') rather than a mutation. However, it does not clarify whether the check is live, cached, or limited to a built-in list of known lookalikes, leaving the behavior only partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancies. Every word contributes to communicating the tool's core purpose, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with an output schema, the description is nearly sufficient: an agent can infer the input and the classification task. It falls short of complete because it omits accepted input formats and any relationship to sibling tools such as check_blacklist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter url_or_domain has 0% schema description coverage, so the description must clarify the expected value. It only paraphrases it as 'link', and never states whether a bare domain, full URL with protocol, path, or subdomain is acceptable. This leaves real format ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Check whether') and a clear resource: the official NMC domain versus known lookalikes. This also distinguishes it from siblings such as search_doctor_registration and get_doctor_profile, which are about registration records rather than URL authenticity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is only implied; the description does not explain when to prefer this tool over a sibling such as check_blacklist, nor does it state when not to use it. There are no explicit scenarios or alternative routing cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_doctor_profileA
Get the full IMR profile for one specific match from search_doctor_registration.
Not a general search -- this is the live "View" detail for an
already-found doctor_id + registration_number pair, showing qualification,
college, university, and additional qualifications for a closer match
check. Deliberately excludes personal contact fields the underlying
record also contains (date of birth, phone, email, home address) --
those aren't needed to verify a registration is genuine, and returning
them would turn a verification lookup into a PII source.
| Name | Required | Description | Default |
|---|---|---|---|
| doctor_id | Yes | doctor_id from a search_doctor_registration match. | |
| registration_number | Yes | Registration number, if you have one. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| source | Yes | |
| college | Yes | |
| university | Yes | |
| parent_name | Yes | |
| qualification | Yes | |
| state_council | Yes | |
| blacklist_flag | Yes | |
| registration_date | Yes | |
| qualification_year | Yes | |
| registration_number | Yes | |
| additional_qualifications | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It transparently discloses that it deliberately excludes personal contact fields (phone, email, address) and explains the reason (to avoid turning a verification lookup into a PII source). This reveals important behavioral traits about the output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-organized. It leads with the primary purpose, then provides essential context about usage and exclusions. No filler or redundant statements; every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what the tool returns (qualification, college, university, additional qualifications), what it excludes (personal contact fields) and why, and when to use it. Since an output schema exists, the description need not detail return values. It is well-rounded and sufficient for an agent to decide usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for both parameters ('doctor_id from a search_doctor_registration match', 'registration_number, if you have one'). The tool description adds value by clarifying that these form a pair and are from an already-found match, reinforcing their mutual dependency, but this is a moderate addition beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool's action (Get the full IMR profile) and resource (one specific match from search_doctor_registration). It also explicitly distinguishes itself from a general search and mentions it's for an already-found pair, providing clear differentiation from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies when to use the tool: for an already-found doctor_id + registration_number pair, to check a match more closely. It also contrasts with search_doctor_registration, indicating that this is not a general search, giving clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registration_lookup_guideA
Get the correct, official manual steps to verify an Indian doctor's registration.
This is the fallback path: use search_doctor_registration and check_blacklist
for a real, live answer. Reach for this tool instead when those fail, look
wrong, or you'd rather double-check by hand -- it hands back exactly where
and how to search nmc.org.in yourself rather than an automated result.
| Name | Required | Description | Default |
|---|---|---|---|
| doctor_name | No | ||
| state_council | No | ||
| registration_number | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| caution | Yes | |
| also_check | Yes | |
| search_url | Yes | |
| how_to_search | Yes | |
| fallback_navigation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral burden. It explains that this tool returns manual lookup instructions rather than an automated result, which is a meaningful disclosure of behavior. It could add more detail about how the optional inputs shape the returned steps, but the core behavior is clearly communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the primary purpose appears in the first sentence, and the fallback role and usage conditions appear immediately after. There is little wasted text and the structure supports quick agent comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description accurately scopes the tool, confirms it is not a live lookup, and names the relevant sibling tools. Since the parameters are optional and described in the schema, the description is complete enough for an agent to decide whether to call it, though a note on how each parameter influences the returned guide would raise it further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description itself does not add per-parameter guidance, but the input schema already describes all three optional parameters meaningfully. The parameter semantics is therefore adequate, but the description does not go beyond the schema to clarify edge cases or required formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: get the correct, official manual steps to verify an Indian doctor's registration on nmc.org.in. It also clearly differentiates itself from sibling live-lookup tools by calling itself the fallback path rather than an automated result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool versus alternatives: use search_doctor_registration and check_blacklist for real, live answers, and use this guide when those fail, look wrong, or when a manual double-check is preferred. This gives an agent actionable routing criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_doctor_registrationA
Search the live Indian Medical Register and return real matches.
Provide at least one of doctor_name or registration_number. This calls the
same public JSON endpoint nmc.org.in's own search page uses -- a real, live
lookup, not a guide. That endpoint is undocumented and unsupported by NMC,
so treat a request failure as "try registration_lookup_guide instead," not
as "the doctor doesn't exist."
Quirk worth knowing: NMC's backend 500s on any name value containing a
space (confirmed against the live endpoint -- a bug in their server, not
a validation rule of ours). A multi-word doctor_name is narrowed to its
most distinctive single word before being sent, and every match comes
back with a name_match flag so you can still tell whether the full name
actually lines up.
A registration number match alone doesn't mean the practitioner is
currently in good standing -- always also call check_blacklist.
| Name | Required | Description | Default |
|---|---|---|---|
| doctor_name | No | ||
| state_council | No | ||
| registration_number | No | ||
| year_of_registration | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | Yes | |
| caution | Yes | |
| matches | Yes | |
| returned | Yes | |
| truncated | Yes | |
| query_note | Yes | |
| total_matches | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals the endpoint is undocumented and unsupported, the backend 500s on names with spaces, the narrowing workaround, the name_match flag, and the caveat that a registration match alone doesn't imply good standing. This is exceptionally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is multi-sentence but every sentence delivers essential information: purpose, usage constraint, failure mode, quirk, and follow-up action. It is well-structured, front-loaded with the core purpose, and avoids fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a live external dependency, undocumented endpoint, and known server bugs, the description covers all necessary operational details: error handling, input quirks, output interpretation (name_match flag), and cross-tool interactions (check_blacklist). Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful semantics for doctor_name (space handling and narrowing to a distinctive single word) and for registration_number (that a match doesn't imply good standing, requiring check_blacklist). It does not add extra meaning for state_council or year_of_registration, but the schema already provides basic descriptions. Since schema description coverage is 0%, the description compensates for the critical parameters but not all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search'), names the resource ('live Indian Medical Register'), and clarifies it returns 'real matches' rather than a guide. It explicitly contrasts with registration_lookup_guide by stating this is a live lookup, which differentiates it from that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly requires 'at least one of doctor_name or registration_number'. It provides clear guidance on failure handling ('treat a request failure as try registration_lookup_guide instead'), and mandates a complementary action ('always also call check_blacklist'). No ambiguity about when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.1.0- First observed
check_blacklist - First observed
flag_lookalike_domain - First observed
get_doctor_profile - First observed
registration_lookup_guide - First observed
search_doctor_registration
TDQS
Each tool has a clearly distinct purpose: live register search, blacklist check, profile detail, manual fallback guide, and domain safety check. There is no real overlap, and the descriptions reinforce the boundaries between search, blacklist, and guide.
Most tool names follow a clear verb_noun pattern in snake_case: check_blacklist, flag_lookalike_domain, search_doctor_registration, get_doctor_profile. The one outlier is registration_lookup_guide, which is a noun phrase rather than a verb-led name, making the convention mostly but not fully consistent.
Five tools is a well-scoped set for a doctor verification server. Each tool addresses a distinct part of the verification workflow without redundancy or bloat.
The tool set covers the core verification lifecycle: live register search, blacklist screening, detailed profile retrieval, a manual fallback guide, and domain legitimacy checking. No obvious dead ends or missing operations for the stated purpose of verifying an Indian doctor's registration.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Real-time U.S. medical license verification across all 50 states + DC.
Conselho Federal de Medicina: Cadastro, official-source lookup. Platform-hosted, pay per query with
Healthcare provider & compliance intel: NPPES lookup, OIG/SAM exclusion screening, FDA enforcement.
Physician-reviewed medical opinions and prescriptions for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceProvides comprehensive medical information by querying authoritative sources including FDA drug database, WHO health statistics, PubMed literature, RxNorm nomenclature, Google Scholar, and Australia's PBS API through 22+ specialized tools.713MIT
- AlicenseNot gradedqualityCmaintenanceProvides access to Indian healthcare knowledge bases including 500,000+ branded drugs and 180+ treatment protocols from authoritative institutions like ICMR, enabling AI responses grounded in verified medical information specific to the Indian healthcare context.19MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to search the doktor.mx directory for over 56,000 verified doctors and medical specialists across Mexico. It provides tools for verifying professional licenses, finding specialists by symptoms or conditions, and checking medical insurance compatibility.1063MIT
- AlicenseNot gradedqualityDmaintenanceEnables medical information retrieval and drug interaction checking via MCP, integrating a local knowledge base with Grok AI for fallback queries.23ISC
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chandanbcsm012/VERIFY_INDIAN_DOCTOR_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server