pharmguide-mcp 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pharmguide_mcp-0.3.0/PKG-INFO +88 -0
- pharmguide_mcp-0.3.0/README.md +69 -0
- pharmguide_mcp-0.3.0/pharmguide/__init__.py +0 -0
- pharmguide_mcp-0.3.0/pharmguide/_data/compiled/clinpgx_labels_v1.json +8343 -0
- pharmguide_mcp-0.3.0/pharmguide/_data/compiled/cpic_pairs_v1.json +6477 -0
- pharmguide_mcp-0.3.0/pharmguide/_data/compiled/ddi_v1.json +152 -0
- pharmguide_mcp-0.3.0/pharmguide/_data/compiled/diplotypes_v1.json +1 -0
- pharmguide_mcp-0.3.0/pharmguide/_data/compiled/dpwg_v1.json +1404 -0
- pharmguide_mcp-0.3.0/pharmguide/_data/compiled/fda_tables_v1.json +5134 -0
- pharmguide_mcp-0.3.0/pharmguide/_data/compiled/frequencies_v1.json +1 -0
- pharmguide_mcp-0.3.0/pharmguide/_data/compiled/pharmgkb_v1.json +4658 -0
- pharmguide_mcp-0.3.0/pharmguide/_data/compiled/recommendations_v1.json +45889 -0
- pharmguide_mcp-0.3.0/pharmguide/_data/compiled/signals_v1.json +22167 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/__init__.py +6 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/__main__.py +2 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/bodies.py +22 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/build.py +323 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/cli.py +69 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/copy.py +48 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/data/alternatives.yaml +27 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/data/conflict_register.yaml +52 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/data/data_source_licenses.yaml +37 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/data/drug_aliases.yaml +61 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/data/patient_copy.en.yaml +267 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/data/patient_copy.fr.yaml +5 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/data/phenotype_map.yaml +56 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/data/signal_schema.json +35 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/frequency.py +52 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/genotype.py +241 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/interactions.py +348 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/loader.py +84 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/normalizer.py +51 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/paths.py +17 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/questions.py +86 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/reasoner.py +79 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/recommendations.py +25 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/renderers/__init__.py +0 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/renderers/patient.py +84 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/renderers/practitioner.py +152 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/samd_lint.py +91 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/scorer.py +286 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/severity.py +31 -0
- pharmguide_mcp-0.3.0/pharmguide/signal/types.py +136 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp/__init__.py +2 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp/catalog.py +32 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp/ngx.py +221 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp/ngx_data/assessments.yaml +229 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp/ngx_data/grimaldi_framework.yaml +85 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp/ngx_data/references.yaml +77 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp/server.py +175 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp/tools.py +165 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp/vocab.py +143 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp.egg-info/PKG-INFO +88 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp.egg-info/SOURCES.txt +58 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp.egg-info/dependency_links.txt +1 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp.egg-info/entry_points.txt +2 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp.egg-info/requires.txt +6 -0
- pharmguide_mcp-0.3.0/pharmguide_mcp.egg-info/top_level.txt +2 -0
- pharmguide_mcp-0.3.0/pyproject.toml +51 -0
- pharmguide_mcp-0.3.0/setup.cfg +4 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pharmguide-mcp
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: MCP server for Omiclamp: cited pharmacogenomic guideline evidence and graded nutrigenomics, as an educational reference.
|
|
5
|
+
Project-URL: Homepage, https://www.omiclamp.com
|
|
6
|
+
Project-URL: Documentation, https://www.omiclamp.com/developers
|
|
7
|
+
Keywords: mcp,pharmacogenomics,pgx,nutrigenomics,cpic,omiclamp
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Intended Audience :: Developers
|
|
10
|
+
Classifier: Intended Audience :: Science/Research
|
|
11
|
+
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
12
|
+
Requires-Python: >=3.11
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
Requires-Dist: mcp<2,>=1.2
|
|
15
|
+
Requires-Dist: pydantic>=2.0
|
|
16
|
+
Requires-Dist: PyYAML>=6.0
|
|
17
|
+
Provides-Extra: dev
|
|
18
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
19
|
+
|
|
20
|
+
# pharmguide-mcp
|
|
21
|
+
|
|
22
|
+
An MCP server that gives Claude and other AI agents the evidence behind [Omiclamp](https://www.omiclamp.com):
|
|
23
|
+
|
|
24
|
+
- **Pharmacogenomics (PGx):** what published guideline bodies (CPIC, DPWG, the FDA, Health Canada, ClinPGx, with PharmGKB shown verbatim) say about how a person's genes affect a medication. Every evidence row carries its source, citation, link and date.
|
|
25
|
+
- **Nutrigenomics (NGX):** ten gene-diet topics graded for scientific validity against the Grimaldi et al. 2017 framework, with failed replications and guideline dissent surfaced as conflicts.
|
|
26
|
+
|
|
27
|
+
It runs on your machine. Nothing you ask it, including a genotype, is sent anywhere. The engine and its compiled data ship inside the package, so the answers match www.omiclamp.com for the same build.
|
|
28
|
+
|
|
29
|
+
## Use it for what it is
|
|
30
|
+
|
|
31
|
+
This is an **educational reference, not medical or dietary advice and not clinical decision support.** It reports and contrasts what sources say; it does not tell anyone what to take.
|
|
32
|
+
|
|
33
|
+
- Do not use it to make or automate prescribing, dosing or dietary decisions for a particular person.
|
|
34
|
+
- Keep the `educational_disclaimer` (or `disclaimer`) and the sources attached to anything you show from a response.
|
|
35
|
+
- Cite the guideline body on each row, not this server, and honour its licence: CPIC is CC BY 4.0; DPWG, ClinPGx and PharmGKB are CC BY-SA 4.0 (share-alike; PharmGKB verbatim only); FDA tables are US public domain. `describe_capabilities` returns the full table.
|
|
36
|
+
- Every response carries `provenance` with the compile date. Say how current the data is.
|
|
37
|
+
|
|
38
|
+
## Install
|
|
39
|
+
|
|
40
|
+
Needs [uv](https://docs.astral.sh/uv/). Nothing else to install: `uvx` fetches the package on first run.
|
|
41
|
+
|
|
42
|
+
**Claude Code**
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
claude mcp add omiclamp -- uvx pharmguide-mcp
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Claude Desktop and other MCP clients**
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"mcpServers": {
|
|
53
|
+
"omiclamp": {
|
|
54
|
+
"command": "uvx",
|
|
55
|
+
"args": ["pharmguide-mcp"]
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Tools
|
|
62
|
+
|
|
63
|
+
| Tool | What it returns |
|
|
64
|
+
|---|---|
|
|
65
|
+
| `describe_capabilities` | Call first. Coverage, the meaning of every coded field, source licences and how to cite. |
|
|
66
|
+
| `lookup_drug` | A drug (generic or brand) with its guideline stance, per-source cited evidence, source agreement, conflicts and jurisdictions. |
|
|
67
|
+
| `lookup_pair` | One gene and one drug: the evidence rows for that gene, plus the drug's conflicts. |
|
|
68
|
+
| `translate_genotype` | A star-allele genotype (for example `{"CYP2C19": "*1/*2"}`) to its CPIC phenotype, from CPIC's diplotype tables. |
|
|
69
|
+
| `list_catalog` | Every queryable drug name, generic and brand. |
|
|
70
|
+
| `ngx_list_topics` | The graded nutrigenomics topics: gene, claim, grade, actionability. |
|
|
71
|
+
| `ngx_lookup_topic` | One topic's full assessment: grade, conflicts, evidence and references. |
|
|
72
|
+
|
|
73
|
+
## Develop
|
|
74
|
+
|
|
75
|
+
From a checkout of the Omiclamp repository:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
cd pharmguide-mcp
|
|
79
|
+
PYTHONPATH=..:. python -m pytest -q # includes parity with every record the site serves
|
|
80
|
+
PYTHONPATH=..:. python -m pharmguide_mcp.server
|
|
81
|
+
./build.sh # wheel + sdist into dist/, engine and data bundled
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
The server only registers tools and framing (`server.py`); `tools.py` delegates to the `pharmguide.signal` engine and reshapes its output, with no clinical logic of its own. NGX is served from the YAMLs in `ngx_data/`, kept identical to `pharmguide-web/ngx-evidence/`.
|
|
85
|
+
|
|
86
|
+
## Release
|
|
87
|
+
|
|
88
|
+
Bump `version` in `pyproject.toml`, merge, then push a matching tag: `git tag mcp-v0.3.0 && git push origin mcp-v0.3.0`. The `Publish MCP server` workflow tests, builds and publishes to PyPI. Rebuild and release whenever the compiled data changes, or installed copies keep serving the old evidence.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# pharmguide-mcp
|
|
2
|
+
|
|
3
|
+
An MCP server that gives Claude and other AI agents the evidence behind [Omiclamp](https://www.omiclamp.com):
|
|
4
|
+
|
|
5
|
+
- **Pharmacogenomics (PGx):** what published guideline bodies (CPIC, DPWG, the FDA, Health Canada, ClinPGx, with PharmGKB shown verbatim) say about how a person's genes affect a medication. Every evidence row carries its source, citation, link and date.
|
|
6
|
+
- **Nutrigenomics (NGX):** ten gene-diet topics graded for scientific validity against the Grimaldi et al. 2017 framework, with failed replications and guideline dissent surfaced as conflicts.
|
|
7
|
+
|
|
8
|
+
It runs on your machine. Nothing you ask it, including a genotype, is sent anywhere. The engine and its compiled data ship inside the package, so the answers match www.omiclamp.com for the same build.
|
|
9
|
+
|
|
10
|
+
## Use it for what it is
|
|
11
|
+
|
|
12
|
+
This is an **educational reference, not medical or dietary advice and not clinical decision support.** It reports and contrasts what sources say; it does not tell anyone what to take.
|
|
13
|
+
|
|
14
|
+
- Do not use it to make or automate prescribing, dosing or dietary decisions for a particular person.
|
|
15
|
+
- Keep the `educational_disclaimer` (or `disclaimer`) and the sources attached to anything you show from a response.
|
|
16
|
+
- Cite the guideline body on each row, not this server, and honour its licence: CPIC is CC BY 4.0; DPWG, ClinPGx and PharmGKB are CC BY-SA 4.0 (share-alike; PharmGKB verbatim only); FDA tables are US public domain. `describe_capabilities` returns the full table.
|
|
17
|
+
- Every response carries `provenance` with the compile date. Say how current the data is.
|
|
18
|
+
|
|
19
|
+
## Install
|
|
20
|
+
|
|
21
|
+
Needs [uv](https://docs.astral.sh/uv/). Nothing else to install: `uvx` fetches the package on first run.
|
|
22
|
+
|
|
23
|
+
**Claude Code**
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
claude mcp add omiclamp -- uvx pharmguide-mcp
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Claude Desktop and other MCP clients**
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"mcpServers": {
|
|
34
|
+
"omiclamp": {
|
|
35
|
+
"command": "uvx",
|
|
36
|
+
"args": ["pharmguide-mcp"]
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Tools
|
|
43
|
+
|
|
44
|
+
| Tool | What it returns |
|
|
45
|
+
|---|---|
|
|
46
|
+
| `describe_capabilities` | Call first. Coverage, the meaning of every coded field, source licences and how to cite. |
|
|
47
|
+
| `lookup_drug` | A drug (generic or brand) with its guideline stance, per-source cited evidence, source agreement, conflicts and jurisdictions. |
|
|
48
|
+
| `lookup_pair` | One gene and one drug: the evidence rows for that gene, plus the drug's conflicts. |
|
|
49
|
+
| `translate_genotype` | A star-allele genotype (for example `{"CYP2C19": "*1/*2"}`) to its CPIC phenotype, from CPIC's diplotype tables. |
|
|
50
|
+
| `list_catalog` | Every queryable drug name, generic and brand. |
|
|
51
|
+
| `ngx_list_topics` | The graded nutrigenomics topics: gene, claim, grade, actionability. |
|
|
52
|
+
| `ngx_lookup_topic` | One topic's full assessment: grade, conflicts, evidence and references. |
|
|
53
|
+
|
|
54
|
+
## Develop
|
|
55
|
+
|
|
56
|
+
From a checkout of the Omiclamp repository:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
cd pharmguide-mcp
|
|
60
|
+
PYTHONPATH=..:. python -m pytest -q # includes parity with every record the site serves
|
|
61
|
+
PYTHONPATH=..:. python -m pharmguide_mcp.server
|
|
62
|
+
./build.sh # wheel + sdist into dist/, engine and data bundled
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The server only registers tools and framing (`server.py`); `tools.py` delegates to the `pharmguide.signal` engine and reshapes its output, with no clinical logic of its own. NGX is served from the YAMLs in `ngx_data/`, kept identical to `pharmguide-web/ngx-evidence/`.
|
|
66
|
+
|
|
67
|
+
## Release
|
|
68
|
+
|
|
69
|
+
Bump `version` in `pyproject.toml`, merge, then push a matching tag: `git tag mcp-v0.3.0 && git push origin mcp-v0.3.0`. The `Publish MCP server` workflow tests, builds and publishes to PyPI. Rebuild and release whenever the compiled data changes, or installed copies keep serving the old evidence.
|
|
File without changes
|