# ContexteTech

> Search and load AI datasets, prompts and few-shot contexts from the ContexteTech catalogue.

- name: io.github.contexte-tech/contexte
- version: 0.5.2
- connection class: R0 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 92/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.contexte-tech%2Fcontexte
- tools: https://api.protogrid.dev/v1/servers/io.github.contexte-tech%2Fcontexte/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

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


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 45
- drivers: +website +reachable +uptime-100% +updated-4d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 92/100 (new)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 3600000)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 6 of 6 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: search_resources (idempotentHint); fill_prompt (idempotentHint); estimate_cost (idempotentHint); …
- pass `tools.token_cost`: about 1,157 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 4 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: deps.dev does not know contexte@0.5.1

- tools: 6, about 1,157 tokens to load them all
- tool set hash: 0344ded306930bbd93659fb8c9466ce1
- tools last changed: 2026-10-17T10:59:51.158Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.contexte-tech/contexte.svg)](https://protogrid.dev/servers/io.github.contexte-tech/contexte)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-17 `get_download_link` removed
  - Direct download link of a whole ContexteTech dataset, for when the user wants the full file (this online server does not write files); to only look at a few rows, use load_resource instead. Formats: jsonl (original), messages (OpenAI chat), sharegpt, alpaca, csv. Returns the URL, format, number of rows, licence, source and page URL. Fails if the code is unknown or the resource is not a dataset.
- 2026-10-17 `load_resource` changed (description)
  - before: Read one ContexteTech resource, usually right after search_resources or when the user gives a code or page URL. Accepts the short code (end of the page URL, e.g. 'jr6t0n'), 'author/name', or 'code#v2' for a fixed version. Always returns title, type, licence, language, source, version and page URL; plus, for a dataset, the total number of rows, the first rows (default 10, max 50) and a download URL; for a prompt, the template and its {{variables}} (then call fill_prompt); for a context, the system prompt, knowledge and examples. Fails with an error if the code does not exist or the resource is private.
  - after: Read one ContexteTech resource, usually right after search_resources or when the user gives a code or page URL. Accepts the short code (end of the page URL, e.g. 'jr6t0n'), 'author/name', or 'code#v2' for a fixed version. Always returns title, type, licence, language, source, version and page URL; plus, for a dataset, the total number of rows, the first rows (default 10, max 50); for a prompt, the template and its {{variables}} (then call fill_prompt); for a context, the system prompt, knowledge and examples. The result ends with a Source line (resource, author, original data source, publisher, licence): citing it with its links is required. Fails with an error if the code does not exist or the resource is private.
- 2026-10-17 `search_resources` changed (description)
  - before: 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. Use it first when the user needs AI training or evaluation data, a prompt, a context or an AI component, then call load_resource with a returned code. Write the topic in a few words, in English or the content language; common topics are matched across French, English, German and Spanish (e.g. 'marine weather' finds 'météo marine'), and a type word such as 'dataset' or 'prompt' puts that type first. Resources matching every topic come first; weaker matches carry match: partial. Returns up to 15 matches, each with short code, title, type, language, licence, rows (datasets), description and page URL; when nothing matches, returns a short message suggesting how to rephrase.
  - after: 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. Use it first when the user needs AI training or evaluation data, a prompt, a context or an AI component, then call load_resource with a returned code. Write the topic in a few words, in English or the content language; common topics are matched across French, English, German and Spanish (e.g. 'marine weather' finds 'météo marine'), and a type word such as 'dataset' or 'prompt' puts that type first. Resources matching every topic come first; weaker matches carry match: partial. Returns up to 15 matches, each with short code, title, type, language, licence, author, rows (datasets), description and page URL; when nothing matches, returns a short message suggesting how to rephrase.
- 2026-10-16 `estimate_cost` changed (description) **meaning changed**
  - before: 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.
  - after: Estimate in euros what a ContexteTech resource costs to run with common AI models, from the week's list prices. Use it when the user asks about cost, budget or the cheapest model. For a prompt or context: input and output tokens, cost per call for each model and batch discount; for a dataset: cost of one pass over all rows and a fine-tuning estimate on rented GPUs (hours and offers); for a model: memory (VRAM) needed and GPU offers that fit. Returns available: false with a note when no estimate exists for that type.
- 2026-10-16 `get_download_link` changed (description) **meaning changed**
  - before: Direct download link of a whole ContexteTech dataset, in JSONL (original), messages (OpenAI chat), sharegpt, alpaca or csv.
  - after: Direct download link of a whole ContexteTech dataset, for when the user wants the full file (this online server does not write files); to only look at a few rows, use load_resource instead. Formats: jsonl (original), messages (OpenAI chat), sharegpt, alpaca, csv. Returns the URL, format, number of rows, licence, source and page URL. Fails if the code is unknown or the resource is not a dataset.
- 2026-10-16 `fill_prompt` changed (description) **meaning changed**
  - before: Fill a ContexteTech prompt template ({{variable}} placeholders) and return the ready-to-use prompt.
  - after: Fill a ContexteTech prompt template and return the ready-to-send text, nothing else. Use it when the user wants a prompt applied to their own case; call load_resource first if you need the template or the exact variable names. 'variables' maps each {{name}} of the template to its text value; extra keys are ignored. Fails with an error if the code is unknown, if the resource is not a prompt, or if a template variable is missing (the error lists the missing names).
- 2026-10-16 `load_resource` changed (description) **meaning changed**
  - before: Load one ContexteTech resource by short code (e.g. 'jr6t0n'). Dataset: description, licence and the first rows; prompt: template and variables; context: system prompt and examples.
  - after: Read one ContexteTech resource, usually right after search_resources or when the user gives a code or page URL. Accepts the short code (end of the page URL, e.g. 'jr6t0n'), 'author/name', or 'code#v2' for a fixed version. Always returns title, type, licence, language, source, version and page URL; plus, for a dataset, the total number of rows, the first rows (default 10, max 50) and a download URL; for a prompt, the template and its {{variables}} (then call fill_prompt); for a context, the system prompt, knowledge and examples. Fails with an error if the code does not exist or the resource is private.
- 2026-10-16 `search_resources` changed (description) **meaning changed**
  - before: 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.
  - after: 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. Use it first when the user needs AI training or evaluation data, a prompt, a context or an AI component, then call load_resource with a returned code. Write the topic in a few words, in English or the content language; common topics are matched across French, English, German and Spanish (e.g. 'marine weather' finds 'météo marine'), and a type word such as 'dataset' or 'prompt' puts that type first. Resources matching every topic come first; weaker matches carry match: partial. Returns up to 15 matches, each with short code, title, type, language, licence, rows (datasets), description and page URL; when nothing matches, returns a short message suggesting how to rephrase.
- 2026-10-15 `fetch` changed (annotations)
- 2026-10-15 `search` changed (annotations)

Full history: https://api.protogrid.dev/v1/servers/io.github.contexte-tech%2Fcontexte/changes

## Dependencies

- pypi contexte@0.5.1: unknown

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0.

## Remotes

- https://contextetech.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

- pypi contexte@0.5.1

## Tools (6)

- `estimate_cost`: Estimate in euros what a ContexteTech resource costs to run with common AI models, from the week's list prices. Use it when the user asks about cost, budget or the cheapest model. For a prompt or context: input and output tokens, cost per call for each model and batch discount; for a dataset: cost of one pass over all rows and a fine-tuning estimate on rented GPUs (hours and offers); for a model: memory (VRAM) needed and GPU offers that fit. Returns available: false with a note when no estimate exists for that type.
- `fetch`: Fetch the full content of a ContexteTech resource by the id returned by search.
- `fill_prompt`: Fill a ContexteTech prompt template and return the ready-to-send text, nothing else. Use it when the user wants a prompt applied to their own case; call load_resource first if you need the template or the exact variable names. 'variables' maps each {{name}} of the template to its text value; extra keys are ignored. Fails with an error if the code is unknown, if the resource is not a prompt, or if a template variable is missing (the error lists the missing names).
- `load_resource`: Read one ContexteTech resource, usually right after search_resources or when the user gives a code or page URL. Accepts the short code (end of the page URL, e.g. 'jr6t0n'), 'author/name', or 'code#v2' for a fixed version. Always returns title, type, licence, language, source, version and page URL; plus, for a dataset, the total number of rows, the first rows (default 10, max 50); for a prompt, the template and its {{variables}} (then call fill_prompt); for a context, the system prompt, knowledge and examples. The result ends with a Source line (resource, author, original data source, publisher, licence): citing it with its links is required. Fails with an error if the code does not exist or the resource is private.
- `search`: Search the ContexteTech catalogue of AI datasets, prompts and contexts. Returns results with id, title and url.
- `search_resources`: 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. Use it first when the user needs AI training or evaluation data, a prompt, a context or an AI component, then call load_resource with a returned code. Write the topic in a few words, in English or the content language; common topics are matched across French, English, German and Spanish (e.g. 'marine weather' finds 'météo marine'), and a type word such as 'dataset' or 'prompt' puts that type first. Resources matching every topic come first; weaker matches carry match: partial. Returns up to 15 matches, each with short code, title, type, language, licence, author, rows (datasets), description and page URL; when nothing matches, returns a short message suggesting how to rephrase.
