Reference Docs (Market)
mdmcp-market_data_docs
Reference documentation for the query and lookup tools, one topic per call: filter_fields (every filter field with type, definition, valid values, and the operator validity table), metrics (metric ids and definitions, price-unit scales, retail-term routing), group_by_fields (group-by, histogram and percentile fields), dates_and_compare (date snapping, trend rules, multi-period combining, compare semantics), text_search (name/description query syntax), composition (how fabric percentages are captured, why percentage bands are not additive, and per-retailer coverage caveats — read this before banding fibre content or comparing retailers on it), product_searches (the category/product_details taxonomies are TREES returned as one flat mixed-depth list, so their rows must never be summed — read this before doing any arithmetic across a category breakdown), response_shape (how every tool's result is structured, what an error payload means, and why an empty result is not a failure), lookup_matching (how to read match on the search_* tools: what each tool compares for exact, why there is no score, and why a name match is not evidence of data). Pass ids to get only specific entries (supported for filter_fields, metrics, group_by_fields) — e.g. topic="filter_fields", ids=["gender", "tier"]. The query tool descriptions may not carry all of this inline — call this whenever you need a field id, metric id, valid value, operator, price scale or date rule you do not already have, and to re-read a section later. The long-form composition and product_searches guidance is only available here.
Parameters
| Name | Type | Required | Constraints | Description |
|---|---|---|---|---|
topic | string | yes | — | Documentation section to retrieve. |
ids | string[] | no | — | Optional: return only these field/metric ids. Supported for filter_fields, metrics and group_by_fields. |
Try it
Code examples
- curl
- TypeScript
- Python
curl -s https://mcp.edited.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-06-18" \
-H "x-api-key: $MCP_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "mdmcp-market_data_docs",
"arguments": {
"topic": "example"
}
}
}'
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const client = new Client({ name: "demo", version: "1.0.0" }, { capabilities: {} });
await client.connect(
new StreamableHTTPClientTransport(new URL("https://mcp.edited.com/mcp"), {
requestInit: { headers: { "x-api-key": process.env.MCP_API_KEY ?? "" } },
}),
);
const result = await client.callTool({
name: "mdmcp-market_data_docs",
arguments: {
"topic": "example"
},
});
import os
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
headers = {"x-api-key": os.environ["MCP_API_KEY"]}
async with streamablehttp_client("https://mcp.edited.com/mcp", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool(
"mdmcp-market_data_docs",
{"topic": "example"},
)
Input schema
{
"type": "object",
"properties": {
"topic": {
"description": "Documentation section to retrieve.",
"enum": [
"filter_fields",
"metrics",
"group_by_fields",
"dates_and_compare",
"text_search",
"composition",
"product_searches",
"response_shape",
"lookup_matching"
],
"type": "string"
},
"ids": {
"description": "Optional: return only these field/metric ids. Supported for filter_fields, metrics and group_by_fields.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"topic"
]
}
Output schema
Describes both branches of the envelope — result on success, error on a refusal. Validate against this rather than pattern-matching the prose above; see Concepts → Response shape.
{
"type": "object",
"properties": {
"result": {
"type": "string"
},
"error": {
"type": "object",
"description": "Present instead of `result` when the call was rejected. Branch on `code`; never string-match `message`.",
"properties": {
"code": {
"type": "string",
"enum": [
"invalid_input",
"not_entitled",
"upstream_unavailable",
"internal"
]
},
"message": {
"type": "string"
},
"field": {
"type": "string",
"description": "Offending parameter, when the failure is attributable to one."
},
"details": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"code",
"message"
]
}
},
"x-fastmcp-wrap-result": true,
"oneOf": [
{
"required": [
"result"
]
},
{
"required": [
"error"
]
}
]
}