contexte
Officialcontexte
Load resources from ContexteTech — datasets, prompts, few-shot contexts — in one line of Python. No dependencies.
pip install contexteimport contexte
# Dataset: rows as dicts (JSONL messages)
ds = contexte.load("contextetech/anonymisation-rgpd-fr")
print(len(ds), ds[0]["messages"][1]["content"])
# Prompt with {{variables}}
p = contexte.load("contextetech/fiche-produit-ecommerce")
print(p.variables) # ['produit', 'caracteristiques', 'public']
text = p.fill(produit="Casque audio", caracteristiques="Bluetooth, 30 h", public="étudiants")
# Few-shot context, ready for any chat API
c = contexte.load("contextetech/anonymisation-rgpd")
system = c.system_prompt()
messages = c.messages("Bonjour, je suis Jean Martin, 06 11 22 33 44.")
# Load by short code (end of the resource URL, e.g. …/fiche-produit-ecommerce-jr6t0n)
p = contexte.load("jr6t0n")
# Search and cost
contexte.search("rgpd", kind="dataset")
contexte.cost("contextetech/anonymisation-rgpd") # estimated cost per model, in eurosCommand line
contexte get jr6t0n # saves fiche-produit-ecommerce.json in the current folder
contexte get contextetech/anonymisation-rgpd-fr -o data/
contexte search rgpd --kind datasetA resource is referenced as author/name, by its short code (end of its URL), or by its identifier. Read-only, no account needed.
Related MCP server: EOSC Data Commons Search
MCP server
Use the catalogue from an AI assistant (ChatGPT, Claude, Cursor, VS Code…).
Online, nothing to install — add this URL as a connector (Streamable HTTP, no authentication):
https://contextetech.com/mcpLocal — the same server from this package, which can also save whole datasets to files:
{ "mcpServers": { "contexte": { "command": "uvx", "args": ["contexte@latest", "mcp"] } } }Tools (local server): search_resources (search the catalogue), load_resource (load a resource by short code: dataset rows, prompt template, context), fill_prompt (fill a prompt's {{variables}}), download_dataset (save a whole dataset as JSONL, OpenAI messages, ShareGPT, Alpaca or CSV), estimate_cost (tokens and euros per model). All read-only except download_dataset, which writes a file and never overwrites one. Stdio transport, no dependencies, no key. The online server offers the same read-only tools, with get_download_link instead of download_dataset.
Full guide: https://contextetech.com/en/docs/mcp
License
MIT. The ContexteTech name and logos are trademarks and are not covered by this license.
Available Tools
5 toolsdownload_datasetDownload a dataset to a fileAIdempotent
Save a whole ContexteTech dataset to a local file, ready for fine-tuning or evaluation. Formats: jsonl (original), messages (OpenAI chat), sharegpt, alpaca, csv. Never overwrites an existing file.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Short code or author/name of the dataset; 'code#v2' for a fixed version | |
| path | No | File or folder to write to (default: current folder, file named after the dataset) | |
| format | No | File format (default: jsonl) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true and idempotentHint=true. The description adds a real behavioral fact beyond them: 'Never overwrites an existing file', which is important safety context for a write tool and slightly qualifies the idempotency hint. It still omits auth requirements, overwrite-error behavior, and remote/network implications of openWorldHint.
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?
Three short sentences, front-loaded with what is saved and where, then formats, then the overwrite caveat. No padding, no restatement of the title, every sentence carries information.
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?
No output schema exists, yet the description covers the essential call-time facts (what is written, format choices, no-overwrite guarantee) and the schema supplies defaults for path and format. It could still say what the call returns (e.g. the written path) or note large-dataset/network behavior, hence not a 5.
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?
Schema coverage is 100%, so the baseline is 3. The description adds semantic labels to the enum values that the schema lists bare ('jsonl (original)', 'messages (OpenAI chat)'), which genuinely helps an agent pick a format; the code and path parameters are left entirely to 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?
Specific verb+resource: 'Save a whole ContexteTech dataset to a local file', with an explicit enumeration of output formats. It implicitly separates itself from load_resource ('whole dataset' written to disk rather than loaded), but never names an alternative, so the differentiation is inferential rather than stated.
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?
'ready for fine-tuning or evaluation' gives a rough purpose context, which implies when you'd reach for this tool. However there is no explicit when-to-use vs load_resource/search_resources guidance, no prerequisites, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_costEstimate the costARead-only
Estimated cost of a ContexteTech resource with common AI models (euros): input and output tokens, cost per call or per pass, batch discount, cheapest model; for a dataset, fine-tuning on a rented GPU.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Short code or author/name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so the safety profile is already covered. The description adds substantive behavioral context absent from the schema by enumerating the outputs (input/output tokens, cost per call or pass, batch discount, cheapest model, fine-tuning on rented GPU), which is valuable given there is no output schema.
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?
A single dense sentence front-loads the core purpose and then lists the output dimensions. It is efficient, though the semicolon-separated clause about datasets and rented GPUs is slightly compressed and reads as a run-on.
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 read-only, single-parameter cost estimator with no output schema, the description adequately describes what will be computed. It does not explain currency-per-model aggregation or the format of the returned estimate, but the essential scope is covered.
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?
Schema description coverage is 100% and the single 'code' parameter is documented as 'Short code or author/name'. The description does not clarify the identifier format or what resource types are accepted, so it adds no meaning beyond the schema — baseline 3 applies.
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 clearly states the tool estimates the cost of a ContexteTech resource across common AI models in euros, enumerating the cost dimensions returned. It is distinct from siblings like search_resources or download_dataset, though the framing is a noun phrase rather than an explicit verb+resource statement.
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?
There is no explicit guidance on when to use this tool versus alternatives, nor any prerequisites (e.g., that a resource must first be located or loaded). Usage is only loosely implied by the phrase 'a ContexteTech resource'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fill_promptFill a promptBRead-only
Fill a ContexteTech prompt template ({{variable}} placeholders) and return the ready-to-use prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Short code or author/name of the prompt | |
| variables | Yes | Values for each {{variable}} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds that the operation performs placeholder substitution and yields a ready-to-use prompt, but says nothing about failure modes (unknown code, missing variable keys, extra variables).
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?
One tight sentence with the action, the input convention, and the return value front-loaded. Nothing is wasted, though it largely echoes the title 'Fill a prompt'.
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 two-parameter, both-required tool with a nested variables object and no output schema, the description covers the transformation and the return value, which is the main gap. It still omits how the 'code' is resolved and what happens when variables don't match the template, leaving edge-case behavior undocumented.
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?
Schema coverage is 100% and the schema already defines both 'code' and the 'variables' map with its {{variable}} placeholder semantics. The description's '({{variable}} placeholders)' remark restates the schema rather than adding format or lookup detail, so the baseline 3 applies.
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?
States a specific verb (Fill) and resource (a ContexteTech prompt template with {{variable}} placeholders) plus the resulting artifact (ready-to-use prompt). It does not compare itself to the closest sibling, load_resource, which an agent might otherwise reach for when fetching a prompt.
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?
There is no explicit when-to-use statement, no prerequisite (e.g., where 'code' comes from), and no mention of alternatives such as load_resource. Usage is only weakly implied by the verb 'Fill'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_resourceLoad a resourceARead-only
Load one ContexteTech resource by short code (e.g. 'jr6t0n') or 'author/name'. Dataset: description, licence and the first rows; prompt: template and variables; context: system prompt and examples.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Short code or author/name; 'code#v2' for a fixed version | |
| rows | No | Dataset rows to return (default 10, max 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds genuinely new behavioral context by describing what payload each resource type yields (dataset -> description/licence/first rows, prompt -> template/variables, context -> system prompt/examples), which goes beyond the annotations.
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?
Two dense sentences with no filler: the first gives the action and identifier forms, the second maps resource types to returned content. Everything is front-loaded and every clause carries information.
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?
With no output schema, the description correctly compensates by explaining the shape of returned data per resource type, and the two parameters are fully covered by the schema. It stops short of covering failure cases (invalid/expired code) or the effect of the rows cap, which is a minor gap for a read tool.
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?
Schema description coverage is 100%: both 'code' (including the 'code#v2' fixed-version syntax) and 'rows' (default 10, max 50) are fully documented in the schema. The description only restates the code formats, so it adds little beyond the structural fields — baseline 3.
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?
States a specific verb (load) and resource (ContexteTech resource) plus the identifier forms accepted ('jr6t0n' or 'author/name'). It also enumerates what is returned for each resource type, which helps distinguish it from search_resources, though the sibling split is only implied rather than stated.
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 implies you already have a short code or author/name in hand, which suggests this follows a search, but it never says when to prefer this over search_resources or how to obtain a code. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_resourcesSearch the ContexteTech catalogueARead-only
Search the ContexteTech catalogue of AI building blocks: fine-tuning and evaluation datasets (chat, DPO, agent traces), prompts, few-shot contexts, MCP servers, models and more, many grounded in official European sources, in 9 languages. Returns for each match: short code, title, type, language, licence, number of rows (datasets), description and page URL.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional type: dataset, prompt, context, tool, model, agent, eval, rag… | |
| query | Yes | Search words, e.g. 'customs code' or 'GDPR' | |
| language | No | Optional content language: fr, en, es, de, it, nl, pt, sv, pl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds real value by enumerating the fields returned per match (code, title, type, language, licence, row count, description, page URL), which is meaningful behavioral context given there is no output schema.
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?
Two sentences, front-loaded with the core action and scope, then the return shape. The type enumeration in sentence one is dense but informative rather than redundant; little waste overall.
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?
With a complete parameter schema and no output schema, the description adequately covers both the searchable domain and the return fields. The main omission is result count/pagination behavior, a minor gap for a search tool.
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?
Schema description coverage is 100%, so the schema already documents query, type and language. The description adds only ambient context (types, 9 languages) that loosely maps to the type/language params but contributes no syntax, format or default details beyond the schema. Baseline 3 applies.
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 gives a specific verb (Search) and a well-scoped resource (the ContexteTech catalogue of AI building blocks), enumerating the content types it covers. An agent knows exactly what domain this returns, though it never explicitly distinguishes itself from the generic sibling 'search' tool.
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?
There is no when-to-use guidance and no routing away from siblings such as 'search' or 'load_resource'. The usage is only implied by the tool's domain, leaving the agent to guess how this differs from the generic search sibling.
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.
5 tool updates
v0.1.0- First observed
download_dataset - First observed
estimate_cost - First observed
fill_prompt - First observed
load_resource - First observed
search_resources
TDQS
Scored across 5 tools
Each tool targets a clearly distinct action: search_resources finds resources, load_resource inspects one, fill_prompt renders prompt templates, download_dataset persists full datasets, and estimate_cost computes pricing. Boundaries are sharp — even the superficially similar load_resource vs download_dataset differ (preview/first rows vs full file export), so an agent can select confidently.
All five names follow a strict snake_case verb_noun pattern (search_resources, load_resource, fill_prompt, download_dataset, estimate_cost). The only variation is plural vs singular nouns, which reflects the actual cardinality semantics rather than an inconsistency.
Five tools is well-scoped for a resource-catalogue server covering discovery, inspection, prompt rendering, dataset export and cost estimation. Every tool earns its place with no redundancy.
The surface covers the core catalogue lifecycle: discover, inspect, use (fill prompts), export datasets and estimate cost. Minor gaps exist — no explicit browse/list-by-type or metadata filtering beyond free search, and no way to fetch a model or MCP server artifact directly — but agents can work around these via search.
Maintenance
Related MCP Connectors
Search and load AI datasets, prompts and few-shot contexts from the ContexteTech catalogue.
Live EU funding data in your AI: grant calls, programmes, consortium partners, VCs, incubators.
Verified, citable German & EU law for any LLM. Daily updates from official sources, hosted in DE.
Verified, citable German & EU law for any LLM. Daily updates from official sources, hosted in DE.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAccess to many public datasets right from your LLM application.155MIT
- AlicenseNot gradedqualityAmaintenanceEnables natural language search and discovery of open-access scientific datasets through the EOSC Data Commons OpenSearch service. Provides tools to search datasets and retrieve file metadata using LLM-assisted queries.15MIT
- AlicenseAqualityCmaintenanceEnables querying and analyzing over 90,000 public datasets from the Spanish Government Open Data Portal (datos.gob.es) using natural language, with tools for search, filtering, metadata access, and SPARQL queries.105MIT
- AlicenseAqualityCmaintenanceConnects LLMs to over 2,850 datasets from 13 Catalan and Spanish open data portals, enabling natural language search and real-time queries of public data.8112 npm22MIT