# Using Ppdb MCP

> Use when answering questions about the Sobrus product database project — its data model, anomaly rules, reference sources, tracker actions, workpackages, RACI, roadmap, risks or governance rules — or when asked to connect to the PPDB MCP server.

- Skill: `ahinleew-aivju833/using-ppdb-mcp` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ahinleew-aivju833/using-ppdb-mcp`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ahinleew-aivju833/using-ppdb-mcp/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: ahinleew-aivju833 (https://skillmd.com/u/ahinleew-aivju833)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/ahinleew-aivju833/using-ppdb-mcp

---


# Using the PPDB MCP server

## Overview

The PPDB MCP server exposes five Sobrus project documents (Word, PowerPoint, three
Excel workbooks) as 15 read-only tools. Content is **French and returned verbatim**.

**Never answer PPDB questions from memory or inference. Always call a tool.** The
whole point of this server is that answers are traceable to the source documents.

## Where it runs

The server is **deployed on Cloudflare Workers** and is the one to use:

```
https://ppdb-mcp.ppdb-sobrus.workers.dev/mcp
```

It is already configured at user scope, so it is available in every project without
setup. If a session does not show it, add it once:

```bash
claude mcp add --transport http --scope user ppdb https://ppdb-mcp.ppdb-sobrus.workers.dev/mcp --header "Authorization: Bearer <TOKEN>"
```

`--scope user` is what makes it available in every project, not just one.

Health check needs no token:
`curl https://ppdb-mcp.ppdb-sobrus.workers.dev/health`

Requests without a valid bearer token get `401`. The data is a build-time snapshot —
`generatedAt` in `ppdb_list_documents` and `/health` tells you how fresh it is.

## Pick the right tool

| The question is about… | Call |
|---|---|
| What documents exist | `ppdb_list_documents` |
| Required product fields, DCI, TVA, barcodes | `ppdb_get_data_model` |
| Data-quality rules, inconsistencies, severities | `ppdb_list_anomaly_rules` |
| Where data comes from, AMMPS, suppliers | `ppdb_list_sources` |
| Tasks, owners, deadlines, progress | `ppdb_list_tracker_actions` |
| A whole workpackage (WP0–WP5) | `ppdb_get_workpackage` |
| Who decides / approves / is consulted | `ppdb_get_raci` |
| Rules for changing the database | `ppdb_get_governance_rules` |
| Why the project exists, audit figures | `ppdb_get_audit_metrics` |
| Overall progress | `ppdb_get_project_status` |
| Phases, timeline, M+N | `ppdb_get_roadmap` |
| Risks and mitigations | `ppdb_list_risks` |
| How updates flow, who does what step | `ppdb_get_update_workflow` |
| Anything else, or an exact phrase | `ppdb_search` |
| Raw content of one sheet/section/slide | `ppdb_read_document` |

## Quick reference

Every tool takes `fmt` (`markdown` default, `json` for structured data). Filters are
accent-insensitive — `medicament` matches `Médicament`.

```
ppdb_list_anomaly_rules(severite="Critique", famille="Prix")
ppdb_list_tracker_actions(wp="WP1", statut="À faire")
ppdb_get_workpackage(wp="WP3")
ppdb_get_raci(role="Data")
ppdb_search(query="AMMPS", document="sources")
ppdb_read_document(document="plan_action", part="Tracker", limit=20)
```

Paginated tools: `ppdb_read_document`, `ppdb_search`, `ppdb_get_data_model`,
`ppdb_list_anomaly_rules`, `ppdb_list_sources`, `ppdb_list_tracker_actions`,
`ppdb_list_risks`. They return `has_more` and `next_offset` — **follow them** rather
than reporting a partial list as complete.

## Prefer typed tools over raw reads

`ppdb_search` and `ppdb_read_document` return raw text you then have to interpret.
The twelve typed tools return already-structured rows. Reach for `ppdb_search` when
no typed tool covers the question, not as a first move.

## Common mistakes

**Answering from the conversation instead of calling a tool.** Figures like the audit
percentages or rule counts must come from `ppdb_get_audit_metrics` /
`ppdb_list_anomaly_rules` every time.

**Translating the data.** `DCI`, `PPV`, `PPH`, `AMM`, *forme galénique* and the emoji
markers (`⬜ À faire`, `🔴 Critique`) are values, not decoration. Quote them as-is.

**Reporting page one as the whole answer.** Check `has_more`.

**Assuming a document section is empty.** Four top-level headings hold no text of
their own; `include_subsections` defaults to `true` and handles this. If you passed
`false` and got a bare heading, that is why.

**Guessing a document name.** Slugs are `cadrage`, `flow_ia`, `plan_action`,
`sources`, `onboarding_plan`. An error lists the valid ones — read it.

## The one tool worth knowing about

`ppdb_get_workpackage` joins a workpackage's narrative definition (Word scoping
document) with its live execution state (tracker rows + dashboard counts). No single
source file contains that view. For "how is WP2 going and what's left", it is one
call instead of four.

