Borrowing it
Nothing to install: this file belongs to spyrosze/mcp-openfoodtox. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/spyrosze/mcp-openfoodtox/master/AGENTS.mdgit clone --depth 1 https://github.com/spyrosze/mcp-openfoodtoxWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/spyrosze/mcp-openfoodtox/agents-md)<a href="https://agentmods.dev/instructions/spyrosze/mcp-openfoodtox/agents-md"><img src="https://agentmods.dev/badge/instructions/spyrosze/mcp-openfoodtox/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/spyrosze/mcp-openfoodtox/agents-md"><img src="https://agentmods.dev/badge/instructions/spyrosze/mcp-openfoodtox/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.06574 | $0.06574 |
| Opus 5 | $0.03287 | $0.03287 |
| Sonnet 5 | $0.01315 | $0.01315 |
| Haiku 4.5 | $0.00657 | $0.00657 |
Grade A, and why
mcp-openfoodtox AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 496 lines — stays where its author put it; the contents beside it link to each section on GitHub.
EFSA OpenFoodTox MCP Server - Project Instructions
Project Overview
Python MCP (Model Context Protocol) server providing LLM access to EFSA food safety toxicology data (~138,000 entries in 9 tables, 8K Chemical substance details). Enables natural language queries about food additives, pesticides, and chemical safety assessments.
Dataset Structure
Core Tables (SQLite)
- Opinion (2,437) - EFSA published opinions/documents
- Synonym (45,582) - Alternative names, E-numbers, trade names
- Component (8,006) - Chemical substance details (CAS, formulas, IUPAC)
- Study (54,621) - Fact table linking substances to studies
- Genotox (246) - Genotoxicity study details
- Endpoint_study (11,698) - Toxicity endpoints (NOAEL, LD50, etc.)
- Chem_assess (11,357) - Risk assessments (ADI, TDI, safety factors)
- Question (5,296) - Opinion-related questions
- Dictionary (204) - Metadata/column descriptions
Key Relationships
SYNONYM (45,582 names/codes)
↓ SUB_COM_ID
COMPONENT (8,006 substances)
↓ SUB_COM_ID
STUDY (54,621 study records)
↓ branches to three study types:
├─ GENOTOX_ID → GENOTOX (246 studies)
├─ TOX_ID → ENDPOINT_STUDY (11,698 studies)
└─ HAZARD_ID → CHEM_ASSESS (11,357 assessments)
↓ OP_ID
OPINION (2,437 opinions)
↓ OP_ID
QUESTION (5,296 questions)
Important Fields
- TRX_ID: Transaction ID (published transmission identifier)
- OP_ID: Opinion identifier
- SUB_COM_ID: Substance-component link
- COM_TYPE: Chemical complexity (single/mixture/botanical/synthetic)
- SUB_OP_CLASS: Usage category (food additive/pesticide/flavoring)
- REGULATION_CODE: EU regulation (1333/2008=additives, 1107/2009=pesticides)
Database Schema Reference
Reference only - use when needed for column names, types, and nullability
Dictionary table
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 204 entries, 0 to 203
Data columns (total 8 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Table_name 197 non-null object
1 Name 197 non-null object
2 Type 197 non-null object
3 Description 197 non-null object
4 isNullable 197 non-null object
5 isRecordUniqueIdentifier 197 non-null object
6 Catalogue Code 33 non-null object
7 Last update 190 non-null object
dtypes: object(8)
memory usage: 12.9+ KB
None
----------
Synonym table
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 45582 entries, 0 to 45581
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 SYNONYM_ID 45582 non-null int64
1 SUB_COM_ID 45582 non-null int64
2 TRX_ID 45582 non-null int64
3 TYPE 45582 non-null object
4 DESCRIPTION 45582 non-null object
dtypes: int64(3), object(2)
memory usage: 1.7+ MB
None
----------
Opinion table
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2437 entries, 0 to 2436
Data columns (total 20 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 DOCUMENT_ID 2437 non-null int64
1 OP_ID 2437 non-null int64
2 TRX_ID 2437 non-null int64
3 DOCTYPE_ID 2437 non-null int64
4 DOCTYPE_CODE 2437 non-null object
5 DOCTYPE 2437 non-null object
6 AUTHOR 2436 non-null object
7 TITLE 2437 non-null object
8 ADOPTION_DATE 2437 non-null int64
9 ADOPTIONDATE 2437 non-null datetime64[ns]
10 PUBLICATION_DATE 2437 non-null int64
11 PUBLICATIONDATE 2437 non-null datetime64[ns]
12 PUBLICATIONYEAR 2437 non-null int64
13 DOI 2437 non-null object
14 URL 2437 non-null object
15 REGULATION_ID 2422 non-null float64
16 REGULATION_CODE 2422 non-null object
17 REGULATION 2422 non-null object
18 REGULATIONFULLTEXT 2422 non-null object
19 OWNER 2437 non-null object
dtypes: datetime64[ns](2), float64(1), int64(7), object(10)
memory usage: 380.9+ KB
None
----------
Component table
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8006 entries, 0 to 8005
Data columns (total 31 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 SUBSTANCECOMPONENT_ID 8006 non-null int64
1 SUB_COM_ID 8006 non-null int64
2 SUB_ID 8006 non-null int64
3 COM_ID 8006 non-null int64
4 TRX_ID 8006 non-null int64
5 SUB_NAME 8006 non-null object
6 SUB_ECSUBINVENTENTRYREF 3111 non-null object
7 SUB_CASNUMBER 4263 non-null object
8 SUB_DESCRIPTION 4398 non-null object
9 SUBPARAM_ID 8006 non-null int64
10 SUBPARAM_CODE 8006 non-null object
11 SUBPARAMNAME 8006 non-null object
12 SUB_TYPE 8006 non-null object
13 QUALIFIER_ID 8006 non-null int64
14 QUALIFIER_CODE 8006 non-null object
15 QUALIFIER 8006 non-null object
16 COMP_VALUE 340 non-null float64
17 COM_NAME 8006 non-null object
18 COM_ECSUBINVENTENTRYREF 4705 non-null object
19 COM_CASNUMBER 6713 non-null object
20 IUPACNAME 6563 non-null object
21 COMPARAM_ID 8006 non-null int64
22 COMPARAM_CODE 8006 non-null object
23 COMPARAMNAME 8006 non-null object
24 MOLECULARFORMULA 6670 non-null object
25 SMILESNOTATION 6695 non-null object
26 INCHI 6743 non-null object
27 COM_TYPE 8006 non-null object
28 COM_STRUCTURESHOWN 0 non-null float64
29 SMILESNOTATIONSOURCE 0 non-null float64
30 INCHI_NOTATIONSOURCE 0 non-null float64
dtypes: float64(4), int64(8), object(19)
memory usage: 1.9+ MB
None
----------
Study table
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 54621 entries, 0 to 54620
Data columns (total 14 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 FACTSTUDY_ID 54621 non-null int64
1 STUDY_ID 54621 non-null int64
2 SUB_COM_ID 54621 non-null int64
3 OP_ID 54621 non-null int64
4 GENOTOX_ID 1452 non-null float64
5 TOX_ID 30192 non-null float64
6 HAZARD_ID 42475 non-null float64
7 TRX_ID 54621 non-null int64
8 SUB_OP_CLASS 54621 non-null object
9 IS_MUTAGENIC 54621 non-null object
10 IS_GENOTOXIC 54621 non-null object
11 IS_CARCINOGENIC 54621 non-null object
12 REMARKS_STUDY 54590 non-null object
13 TOXREF_ID 84 non-null float64
dtypes: float64(4), int64(5), object(5)
memory usage: 5.8+ MB
None
----------
Chem_assess table
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 11357 entries, 0 to 11356
Data columns (total 24 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 CHEMASSESS_ID 11357 non-null int64
1 HAZARD_ID 11357 non-null int64
2 TRX_ID 11357 non-null int64
3 ASSESSMENTTYPE_ID 11357 non-null int64
4 ASSESSMENTTYPE_CODE 11357 non-null object
5 ASSESSMENTTYPE 11357 non-null object
6 RISKQUALIFIER_ID 10492 non-null float64
7 RISKQUALIFIER_CODE 10492 non-null object
8 RISKQUALIFIER 10492 non-null object
9 RISKVALUE 10492 non-null float64
10 RISKUNIT_ID 10492 non-null float64
11 RISKUNIT_CODE 10492 non-null object
12 RISKUNIT 10486 non-null object
13 RISKUNITFULLTEXT 10492 non-null object
14 RISKVALUE_MILLI 10492 non-null float64
15 RISKUNIT_MILLI 10492 non-null object
16 SAFETY_FACTOR 4440 non-null float64
17 ID_POPULATION 11328 non-null object
18 POPULATIONTEXT 11328 non-null object
19 REMARKS 9075 non-null object
20 ASSESS 1305 non-null object
21 COM_GROUP_ID 340 non-null float64
22 GROUP_UNIT 340 non-null object
23 GROUP_REMARKS 16 non-null object
dtypes: float64(6), int64(4), object(14)
memory usage: 2.1+ MB
None
----------
Question table
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5296 entries, 0 to 5295
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 QUESTION_ID 5296 non-null int64
1 OP_ID 5296 non-null int64
2 TRX_ID 5296 non-null int64
3 QUESTION 5296 non-null object
dtypes: int64(3), object(1)
memory usage: 165.6+ KB
None
----------
Genotox table
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 246 entries, 0 to 245
Data columns (total 32 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 GENOTOXICITY_ID 246 non-null int64
1 GENOTOX_ID 246 non-null int64
2 TRX_ID 246 non-null int64
3 STUDY_CATEGORY 246 non-null object
4 GUIDELINE_QUALIFIER 246 non-null object
5 GENOTOXGUIDELINE_ID 31 non-null float64
6 GENOTOXGUIDELINE_CODE 31 non-null object
7 GENOTOXGUIDELINE 246 non-null object
8 GENOTOXGUIDELINEFULLTXT 246 non-null object
9 DEVIATION 20 non-null object
10 GLP_COMPL 32 non-null object
11 SPECIES_CODE_ID 246 non-null int64
12 SPECIES_CODE 246 non-null object
13 SPECIES 246 non-null object
14 STRAIN_ID 104 non-null float64
15 STRAIN_CODE 104 non-null object
16 STRAIN 104 non-null object
17 SEX 42 non-null object
18 MET_INDICATOR 75 non-null object
19 ROUTE_ID 61 non-null float64
20 ROUTE_CODE 61 non-null object
21 ROUTE 246 non-null object
22 EXP_PERIOD 35 non-null float64
23 EXPPERIODUNIT_ID 35 non-null float64
24 EXPPERIODUNIT_CODE 35 non-null object
25 EXPPERIODUNIT 35 non-null object
26 EXPPERIODUNITFULLTXT 35 non-null object
27 EXPPERIOD_DAY 35 non-null float64
28 NUMBER_INDIVIDUALS 13 non-null float64
29 CONTROL 40 non-null object
30 IS_GENOTOXIC 246 non-null object
31 REMARKS 231 non-null object
dtypes: float64(7), int64(4), object(21)
memory usage: 61.6+ KB
None
----------
Endpoint_study table
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 11698 entries, 0 to 11697
Data columns (total 60 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 ENDPOINTSTUDY_ID 11698 non-null int64
1 TOX_ID 11698 non-null int64
2 TRX_ID 11698 non-null int64
3 STUDY_CATEGORY 11698 non-null object
4 TESTSUBSTANCE 1931 non-null object
5 TESTTYPE_ID 11698 non-null int64
6 TESTTYPE_CODE 11698 non-null object
7 TESTTYPE 11698 non-null object
8 LIMITTEST 1174 non-null object
9 GUIDELINE_QUALIFIER 11698 non-null object
10 GUIDELINE_ID 1362 non-null float64
11 GUIDELINE_CODE 1362 non-null object
12 GUIDELINE 11698 non-null object
13 GUIDELINEFULLTXT 11698 non-null object
14 DEVIATION 11698 non-null object
15 GLP_COMPL 11698 non-null object
16 SPECIES_ID 11646 non-null float64
17 SPECIES_CODE 11698 non-null object
18 SPECIES 11698 non-null object
19 STRAIN_ID 2 non-null float64
20 STRAIN_CODE 458 non-null object
21 STRAIN 458 non-null object
22 SEX 1042 non-null object
23 ROUTE_ID 4310 non-null float64
24 ROUTE_CODE 4310 non-null object
25 ROUTE 11698 non-null object
26 EXP_DURATION 6304 non-null float64
27 DURATIONUNIT_ID 6304 non-null float64
28 DURATIONUNIT_CODE 6304 non-null object
29 DURATIONUNIT 6304 non-null object
30 EXP_DURATION_DAYS 6304 non-null float64
31 NUMBER_INDIVIDUALS 647 non-null float64
32 CONTROL 731 non-null object
33 ENDPOINT_ID 11698 non-null int64
34 ENDPOINT_CODE 11698 non-null object
35 ENDPOINT 11698 non-null object
36 QUALIFIER_ID 11698 non-null int64
37 QUALIFIER_CODE 11698 non-null object
38 QUALIFIER 11698 non-null object
39 VALUE 11698 non-null float64
40 DOSEUNIT_ID 11698 non-null int64
41 DOSEUNIT_CODE 11698 non-null object
42 DOSEUNIT 11691 non-null object
43 DOSEUNITFULLTEXT 11698 non-null object
44 VALUE_MILLI 11698 non-null float64
45 UNIT_MILLI 11698 non-null object
46 BASIS_ID 11698 non-null int64
47 BASIS_CODE 11698 non-null object
48 BASIS 11698 non-null object
49 TOXICITY_ID 5253 non-null float64
50 TOXICITY_CODE 5253 non-null object
51 TOXICITY 5253 non-null object
52 TARGETTISSUE_ID 674 non-null float64
53 TARGETTISSUE_CODE 674 non-null object
54 TARGETTISSUE 657 non-null object
55 EFFECT_DESC 3567 non-null object
56 REMARKS 5363 non-null object
57 GROUP_UNIT 236 non-null object
58 COMGROUP_ID 236 non-null float64
59 GROUP_REMARKS 26 non-null object
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 496 lines · 6,574 tokens per session scan A edd2292cee32
mcp-openfoodtox AGENTS.md is an instructions file published in the GitHub repository spyrosze/mcp-openfoodtox (5 stars, last pushed 10mo ago), licensed MIT. It adds 6,574 tokens to every session, about $0.0329 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
codex AGENTS.md
AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
spec-kit AGENTS.md
AGENTS.md instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.