ASAM ODS odsbox jaquel MCP Server
PYPI · ODSBOX-JAQUEL-MCP · SCANNED SEP 20
MCP server for ASAM ODS with Jaquel query tools, connection management, and data access
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security99
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
- 6 of 53 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 16 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability85
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 2544 tokens (~87/item across 29 items; 22 tools + 7 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 98% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "query_execute" implies "execute" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Fail
- An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the ASAM ODS odsbox jaquel MCP Server server?
ASAM ODS odsbox jaquel MCP Server runs locally as a PyPI package, launched with uvx odsbox-jaquel-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · odsbox-jaquel-mcp
claude mcp add totonga-odsbox-jaquel-mcp -- uvx odsbox-jaquel-mcp
{
"mcpServers": {
"totonga-odsbox-jaquel-mcp": {
"command": "uvx",
"args": [
"odsbox-jaquel-mcp"
]
}
}
} {
"servers": {
"totonga-odsbox-jaquel-mcp": {
"command": "uvx",
"args": [
"odsbox-jaquel-mcp"
]
}
}
} codex mcp add totonga-odsbox-jaquel-mcp -- uvx odsbox-jaquel-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"totonga-odsbox-jaquel-mcp": {
"type": "local",
"command": [
"uvx",
"odsbox-jaquel-mcp"
],
"enabled": true
}
}
} openclaw mcp add totonga-odsbox-jaquel-mcp --command uvx --arg odsbox-jaquel-mcp
mcp_servers:
totonga-odsbox-jaquel-mcp:
command: "uvx"
args: ["odsbox-jaquel-mcp"] {
"McpServers": {
"totonga-odsbox-jaquel-mcp": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"odsbox-jaquel-mcp"
]
}
}
} assistant mcp add totonga-odsbox-jaquel-mcp -t stdio -c uvx -a odsbox-jaquel-mcp
{
"mcpServers": {
"totonga-odsbox-jaquel-mcp": {
"command": "uvx",
"args": [
"odsbox-jaquel-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +15
- Malware scan: unverified → pass ▲ security
- 17 Sept 26 −17
- Malware scan: pass → unverified ▼ security
- Stability: pass → 0.80 functional
- 16 Sept 26 0
- Stability: 0.97 → pass security
- 15 Sept 26 +16
- Malware scan: unverified → pass ▲ security
- 14 Sept 26 −15
- Malware scan: pass → unverified ▼ security
- 12 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 10 Sept 26 −2
- Stability: pass → 0.80 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed pypi/odsbox-jaquel-mcp@1.8.3
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 53 packages
| Packages resolved | 53 |
|---|---|
| Stale | 6 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
data_generate_fetcher_script ~117
Generate Python scripts for fetching submatrix data with error handling and data processing.
| Name | Type | Req | Description |
|---|---|---|---|
| include_analysis | boolean | – | Include basic data analysis examples |
| include_visualization | boolean | – | Include matplotlib visualization code |
| measurement_quantity_patterns | – | – | List of measurement quantity patterns to include |
| output_format | string | – | Desired output format for the data |
| script_type | string | yes | Type of script: basic, advanced, batch, analysis |
| submatrix_id | integer | yes | ID of the submatrix to fetch data from |
Structured output declared, but exposes no named fields.
No examples provided.
data_get_quantities ~33
Get available measurement quantities for a submatrix.
| Name | Type | Req | Description |
|---|---|---|---|
| submatrix_id | integer | yes | ID of the submatrix |
Structured output declared, but exposes no named fields.
No examples provided.
data_read_submatrix ~156
Read timeseries data from a submatrix using bulk data access.
| Name | Type | Req | Description |
|---|---|---|---|
| case_insensitive | boolean | – | Whether pattern matching should be case insensitive |
| date_as_timestamp | boolean | – | Convert date columns to pandas timestamps |
| max_preview_size | integer | – | Maximum number of rows in data preview (default: 100) |
| measurement_quantity_patterns | – | – | List of measurement quantity name patterns to include |
| preview_sampling_method | string | – | Method for resampling preview data: auto, uniform, time_aware, random, stratified, minmax |
| set_independent_as_index | boolean | – | Set the independent column as DataFrame index |
| submatrix_id | integer | yes | ID of the submatrix to read |
Structured output declared, but exposes no named fields.
No examples provided.
help_bulk_api ~71
Get help and guidance on using the Bulk API for loading timeseries data. Use this to understand the 3-step workflow and common patterns.
| Name | Type | Req | Description |
|---|---|---|---|
| tool | – | – | Optional: Get contextual help for a specific tool (e.g., data_read_submatrix, ods_connect) |
| topic | string | yes | Help topic |
Structured output declared, but exposes no named fields.
No examples provided.
ods_connect ~76
Establish connection to ASAM ODS server for live model inspection.
| Name | Type | Req | Description |
|---|---|---|---|
| password | string | yes | – |
| url | string | yes | ODS API URL (e.g., http://localhost:8087/api) |
| username | string | yes | ODS username for authentication |
| verify | boolean | – | Verify SSL certificates (default: true) |
| Name | Type | Req | Description |
|---|---|---|---|
| connection | object | yes | Connection information for an active ODS server connection. |
| message | string | yes | – |
No examples provided.
ods_connect_env_list ~50
List all ODS servers configured via environment variables. Returns each server's prefix and URL so you can identify the right server and connect with ``ods_connect_using_env(env_prefix='PREFIX')``.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
ods_connect_using_env ~250
Establish connection to ASAM ODS server using environment variables. Default prefix is ODSBOX_MCP; set ODSBOX_MCP_ENV_PREFIX or pass env_prefix. Falls back to legacy ODS_ prefix variables. Supports three authentication modes via {prefix}_MODE or ODSBOX_MCP_{prefix}_MODE: - basic (default): Username/password. Vars: URL, USERNAME, PASSWORD, VERIFY. - m2m: OAuth2 client credentials. Vars: URL, M2M_TOKEN_ENDPOINT, M2M_CLIENT_ID, M2M_CLIENT_SECRET, M2M_SCOPE (optional, comma-separated), VERIFY. - oidc: OpenID Connect browser login. Vars: URL, OIDC_CLIENT_ID, OIDC_REDIRECT_URI, OIDC_CLIENT_SECRET (optional), OIDC_WEBFINGER_PATH_PREFIX, OIDC_AUTHORIZATION_ENDPOINT, OIDC_TOKEN_ENDPOINT, OIDC_LOGIN_TIMEOUT, OIDC_REDIRECT_INSECURE, OIDC_SCOPE, VERIFY. Secrets (passwords, client_secrets) fall back to keyring when not in env.
| Name | Type | Req | Description |
|---|---|---|---|
| env_prefix | – | – | Optional: override the environment variable prefix (default: ODSBOX_MCP) |
| Name | Type | Req | Description |
|---|---|---|---|
| connection | object | yes | Connection information for an active ODS server connection. |
| message | string | yes | – |
No examples provided.
ods_disconnect ~15
Close connection to ODS server.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
ods_get_connection_info ~17
Get current ODS connection information.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
plot_comparison_notebook ~186
Generate a Jupyter notebook for comparing measurements. Uses the active ODS connection (established via ods_connect or ods_connect_using_env). The generated notebook reads the password from the ODS_PASSWORD environment variable at runtime so no credentials are embedded in the notebook file.
| Name | Type | Req | Description |
|---|---|---|---|
| available_quantities | – | – | List of all available quantities (for documentation) |
| measurement_quantity_names | array | yes | Names of quantities to plot |
| measurement_query_conditions | object | yes | Filter conditions for measurements (MeaResult attributes). Example: {"Name": {"$like": "Profile_*"}} or {"TestStep.Test.Name": {"$eq": "MyTest"}} |
| output_path | – | – | Optional path to save notebook (.ipynb file) |
| plot_type | string | – | Type of plot ("scatter", "line", or "subplots") |
| title | string | – | Notebook title |
Structured output declared, but exposes no named fields.
No examples provided.
plot_generate_code ~70
Generate Python plotting code for measurement comparison.
| Name | Type | Req | Description |
|---|---|---|---|
| measurement_quantity_names | array | yes | List of quantity names to plot |
| plot_type | string | yes | Type of plot ("scatter", "line", or "subplots") |
| submatrices_count | integer | yes | Number of submatrices to plot |
Structured output declared, but exposes no named fields.
No examples provided.
query_describe ~75
Describe what a Jaquel query does.
| Name | Type | Req | Description |
|---|---|---|---|
| query | object | yes | Jaquel query dict to describe. Top-level key is entity name, value is filter/attribute object. Example: {"AoTest": {"name": {"$like": "*"}}, "$attributes": {"id": 1, "name": 1}} |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
query_execute ~261
Execute a Jaquel query directly on connected ODS server.
| Name | Type | Req | Description |
|---|---|---|---|
| max_cells | integer | – | Adaptive cell budget: effective_rows = min(max_rows, max_cells // col_count). Default 10 000 ≈ 6 000 LLM tokens for double data. Increase only if you need more data and understand the context cost. |
| max_rows | integer | – | Maximum number of rows to return (default: 100). Also capped adaptively by max_cells to protect LLM context size. Use a small value like 10-20 for wide results (many columns). |
| query | object | yes | Jaquel query dict to execute. Top-level key is entity name, value is filter/attribute object. Example: {"AoTest": {"name": {"$like": "*"}}, "$attributes": {"id": 1, "name": 1}, "$options": {"$rowlimi… |
| result_format | string | – | Result serialisation format: "split" (default) encodes column names once — {"columns": [...], "index": [...], "data": [...]}; "records" repeats all keys per row — [{"col": val, ...}, ...]. "split" is… |
Structured output declared, but exposes no named fields.
No examples provided.
query_generate_skeleton ~74
Generate a query skeleton for a specific entity and operation.
| Name | Type | Req | Description |
|---|---|---|---|
| entity_name | string | yes | ODS entity name (e.g. 'AoTest', 'AoMeasurement', 'AoSubMatrix') |
| operation | string | – | Type of query: get_all, get_by_id, get_by_name, search_and_select |
Structured output declared, but exposes no named fields.
No examples provided.
query_get_operator_docs ~46
Get documentation and examples for a Jaquel operator.
| Name | Type | Req | Description |
|---|---|---|---|
| operator | string | yes | Jaquel operator name, e.g. '$like', '$gt', '$in', '$between' |
Structured output declared, but exposes no named fields.
No examples provided.
query_get_pattern ~57
Get a template for a common Jaquel query pattern.
| Name | Type | Req | Description |
|---|---|---|---|
| pattern | string | yes | Pattern name: get_all_instances, get_by_id, get_by_name, case_insensitive_search, time_range, inner_join, outer_join, aggregates |
Structured output declared, but exposes no named fields.
No examples provided.
query_list_patterns ~19
List all available Jaquel query patterns and templates.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
query_validate ~99
Validate a Jaquel query structure for syntax errors and best practices.
| Name | Type | Req | Description |
|---|---|---|---|
| query | object | yes | Jaquel query dict to validate. Top-level key is the entity name (e.g. 'AoTest'), value is a filter/attribute object. Example: {"AoTest": {"name": {"$like": "*"}}, "$attributes": {"id": 1, "name": 1},… |
Structured output declared, but exposes no named fields.
No examples provided.
schema_field_exists ~67
Check if a field exists in entity schema.
| Name | Type | Req | Description |
|---|---|---|---|
| entity_name | string | yes | ODS entity name (e.g. 'AoTest', 'AoMeasurement') |
| field_name | string | yes | Field/attribute name to check (e.g. 'name', 'id', 'version') |
Structured output declared, but exposes no named fields.
No examples provided.
schema_get_entity ~37
Get available fields for an entity from ODS model.
| Name | Type | Req | Description |
|---|---|---|---|
| entity_name | string | yes | Entity name (e.g., 'StructureLevel') |
| Name | Type | Req | Description |
|---|---|---|---|
| attributes | object | yes | – |
| derived_from | string | yes | – |
| description | – | yes | – |
| entity | string | yes | – |
| example_queries | object | – | – |
| relationships | object | yes | – |
No examples provided.
schema_list_entities ~23
Return a list of existing entities from the ODS server ModelCache.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
schema_test_to_measurement_hierarchy ~29
Get hierarchical entity chain from AoTest to AoMeasurement via 'children' relation.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
What is the ASAM ODS odsbox jaquel MCP Server server?
ASAM ODS odsbox jaquel MCP Server is listed in the public MCP registry as io.github.totonga/odsbox-jaquel-mcp. MCP server for ASAM ODS with Jaquel query tools, connection management, and data access. This page covers its PyPI package (odsbox-jaquel-mcp).
Is the ASAM ODS odsbox jaquel MCP Server server safe to use?
ASAM ODS odsbox jaquel MCP Server scores 83 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the ASAM ODS odsbox jaquel MCP Server server expose?
ASAM ODS odsbox jaquel MCP Server exposes 22 tools: query_validate, query_get_operator_docs, query_get_pattern, query_list_patterns, query_generate_skeleton, and 17 more. Their descriptions and schemas cost roughly 1,828 tokens of context every time the server is loaded.
Is the ASAM ODS odsbox jaquel MCP Server server still maintained?
ASAM ODS odsbox jaquel MCP Server is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the ASAM ODS odsbox jaquel MCP Server server under?
ASAM ODS odsbox jaquel MCP Server declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.