---
title: "Giving AI agents dermatology tools over MCP"
description: "Five read-only tools, scoped like the REST API and served from one remote MCP endpoint. How an agent finds them, calls them and gets cited answers back."
answer: "DermLiving serves five read-only tools to AI agents over the Model Context Protocol at api.dermliving.com/mcp: search conditions, get a condition, map terminology, search evidence and ask for a grounded answer. Each call runs through the same gateway as the REST API, with the same scopes, rate limits and abstentions."
tag: "Agents"
date: 2026-10-12
author: "DermLiving"
read_minutes: 4
url: https://dermliving.com/blog/dermatology-tools-for-ai-agents
---

# Giving AI agents dermatology tools over MCP

Five read-only tools, scoped like the REST API and served from one remote MCP endpoint. How an agent finds them, calls them and gets cited answers back.

**In short:** DermLiving serves five read-only tools to AI agents over the Model Context Protocol at api.dermliving.com/mcp: search conditions, get a condition, map terminology, search evidence and ask for a grounded answer. Each call runs through the same gateway as the REST API, with the same scopes, rate limits and abstentions.

An agent that answers questions about skin needs more than a model. It needs tools that return structured, cited knowledge, and it needs those tools to refuse the things it should not do. DermLiving offers both through the Model Context Protocol, an open protocol for connecting AI applications to tools and data.

## One endpoint, no install

The tools are served remotely at `https://api.dermliving.com/mcp`, over MCP's streamable HTTP transport. There is nothing to install and no key to request. Add the endpoint to any client that supports remote MCP servers:

```json
{
  "mcpServers": {
    "dermliving": { "type": "http", "url": "https://api.dermliving.com/mcp" }
  }
}
```

The endpoint is stateless, answers in JSON and supports MCP protocol versions 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05. Its test suite drives it with the official MCP TypeScript client.

## The five tools

| Tool | What it does | Scope |
|---|---|---|
| `search_conditions` | Finds conditions by name, synonym or code | `conditions:read` |
| `get_condition` | Fetches a structured condition record | `conditions:read` |
| `map_terminology` | Resolves text or codes to concepts, flagging ambiguity | `terminology:read` |
| `search_evidence` | Retrieves ranked passages with provenance | `evidence:read` |
| `ask_knowledge` | Answers with claim-level citations, or abstains | `knowledge:query` |

Every tool is read-only and declares no side effects: none of them changes anything. Each tool publishes a JSON Schema for its arguments, and arguments that break it are refused before anything runs.

## What a call looks like

Under the client, a tool call is one JSON-RPC request. You can send one by hand:

```bash
curl https://api.dermliving.com/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "map_terminology", "arguments": {"text": "eczema"}}}'
```

The result arrives twice: as text for the model to read, and as `structuredContent` for code. Here is the structured part, shortened to the first candidate:

```json
{
  "trace_id": "trc_ZvmoI6N4LC",
  "knowledge_version": "kv_2026_10_01",
  "result": {
    "input": "eczema",
    "ambiguous": true,
    "note": "Lay umbrella term. Confirm the intended concept.",
    "candidates": [
      { "concept_id": "cond_atopic_dermatitis", "name": "Atopic dermatitis", "match": "lay_term", "score": 0.81 }
    ]
  }
}
```

The `ambiguous` flag is the tool telling the agent to ask before it acts. [What does eczema mean?](https://dermliving.com/blog/mapping-eczema-to-icd-10-cm-and-icd-11) explains why.

## The same rules as the REST API

The MCP endpoint is not a second implementation. Each tool call goes through the same gateway as `POST /v1/agent-tools/execute`, with the caller's own credential:

- **Scopes:** a tool runs only when the caller holds its scope. Callers without a key get the sandbox's scopes, which cover all five tools.
- **Rate limits:** the same limits as the REST API, counted per caller.
- **Abstentions:** `ask_knowledge` refuses clinical decisions and patient data exactly as `POST /v1/knowledge/ask` does, with the same reason codes.
- **Tracing:** every result carries a trace id and the knowledge version it read, so an answer can be traced back to the call that produced it.

## Beyond MCP

Agents that prefer plain HTTP can use the REST API, described in [OpenAPI 3.1](https://dermliving.com/openapi.yaml). The API also publishes `/.well-known/agents.json` at api.dermliving.com, and the website publishes [llms.txt](https://dermliving.com/llms.txt) for models reading the docs. All of them describe the same ten routes and five tools.

Like the REST API, the MCP endpoint serves the synthetic sandbox today. Its answers show the format and the boundaries, not clinical content.

## Questions

### Do I need an API key to use the DermLiving MCP endpoint?

No. The endpoint serves the keyless synthetic sandbox. Requests without a key are rate limited per client address and may use all five tools.

### Which MCP clients work with DermLiving?

Any client that supports remote MCP servers over streamable HTTP. The endpoint is tested with the official MCP TypeScript client.

### Can the tools change data or take actions?

No. All five tools are read-only and have no side effects. They search, fetch, map and answer.

### Which MCP protocol versions are supported?

2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05. A request that names any other version gets a clear error that lists these.

### Will the MCP tools diagnose a skin condition?

No. The ask_knowledge tool abstains on clinical decisions and on input that holds patient identifiers, exactly as the REST API does.

## Sources

- [Model Context Protocol specification, version 2025-11-25](https://modelcontextprotocol.io/specification/2025-11-25), Model Context Protocol
- [Transports: streamable HTTP](https://modelcontextprotocol.io/specification/2025-11-25/basic/transports), Model Context Protocol
- [DermLiving MCP server docs](https://dermliving.com/docs#mcp), DermLiving
