Data source: BIS SDMX REST API
https://context.gnist.ai/mcp/bis/
AuthenticationAll requests require a Gnist-API-Key header (or api_key query parameter).
Free tier: 100 calls/day. Get your API key.
Tools (6)
search_datasetsSearch the BIS dataset catalog by keyword.
Returns matching datasets with their dataflow IDs needed for
get_data, get_dataset_structure, and compare_countries calls.
BIS covers credit/debt, derivatives, banking, property prices,
exchange rates, and other financial statistics from central banks worldwide.
Args:
query: Search term (e.g. "credit", "exchange rates", "property prices").
limit: Number of results to return (1-50, default 20).
Returns:
List of matching datasets with id, name, agency, and description.
Use the 'id' field as the dataflow parameter in other tools.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | required | Search term for BIS datasets (e.g. "credit", "exchange rates", "property prices", "banking", "derivatives"). |
limit | integer | optional | Number of results to return (1-50, default 20). (default: 20) |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "search_datasets",
"arguments": {
"query": "example"
}
}
}list_datasetsList available BIS datasets, optionally filtered by topic.
Browse the full BIS data catalog. Use this to discover what
datasets exist before querying specific data.
Args:
topic: Optional topic filter keyword. Omit to list all datasets.
limit: Maximum datasets to return (1-100, default 50).
Returns:
List of datasets with id, name, and description.
| Parameter | Type | Required | Description |
|---|---|---|---|
topic | any | optional | Optional topic filter (e.g. "banking", "credit", "exchange", "derivatives"). Omit to list all. |
limit | integer | optional | Maximum datasets to return (1-100, default 50). (default: 50) |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "list_datasets",
"arguments": {}
}
}get_dataset_structureGet the dimension structure of a BIS dataset.
Shows what dimensions (filters) are available for a dataset and their
valid values. Use this before get_data to understand what country codes,
frequencies, and other parameters are accepted.
Args:
dataflow: BIS dataflow identifier from search_datasets.
Returns:
List of dimensions with their valid codes/values. Each dimension
shows its position in the SDMX key and sample values.
| Parameter | Type | Required | Description |
|---|---|---|---|
dataflow | string | required | BIS dataflow identifier from search_datasets (e.g. "WS_CBPOL", "WS_SPP", "WS_CREDIT_GAP"). |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_dataset_structure",
"arguments": {
"dataflow": "example"
}
}
}get_dataFetch data from a BIS dataset.
Query any BIS dataset by country and time period. Covers central bank
policy rates, credit statistics, property prices, exchange rates,
derivatives, and banking statistics worldwide.
Args:
dataflow: BIS dataflow identifier. Use search_datasets to find IDs.
countries: ISO alpha-2 country codes. Omit for all countries.
start_period: Start period filter (e.g. "2015").
end_period: End period filter (e.g. "2023").
dimension_filter: Advanced SDMX dimension key. Overrides countries.
limit: Maximum observations to return (1-1000, default 200).
Returns:
Observations with all dimension labels and values.
| Parameter | Type | Required | Description |
|---|---|---|---|
dataflow | string | required | BIS dataflow identifier (e.g. "WS_CBPOL", "WS_SPP"). Use search_datasets to find IDs. |
countries | any | optional | ISO alpha-2 country codes (e.g. ["US", "DE", "NO"]). Omit for all countries. |
start_period | any | optional | Start period (e.g. "2015", "2020-Q1", "2020-01"). |
end_period | any | optional | End period (e.g. "2023", "2023-Q4", "2023-12"). |
dimension_filter | any | optional | Advanced: SDMX dimension key filter (dot-separated, e.g. "M.US+DE"). Overrides countries param. Use get_dataset_structure to find valid dimension values. |
limit | integer | optional | Maximum observations to return (1-1000, default 200). (default: 200) |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_data",
"arguments": {
"dataflow": "example"
}
}
}compare_countriesCompare data across countries for a given BIS dataset.
Fetches the same indicator for multiple countries side by side.
Useful for cross-country analysis of policy rates, credit growth,
property prices, and other BIS financial statistics.
Args:
dataflow: BIS dataflow identifier.
country_codes: ISO alpha-2 country codes to compare. Maximum 20.
start_period: Start period. Omit for most recent data.
end_period: End period. Omit for most recent data.
Returns:
Data grouped by country for easy comparison.
| Parameter | Type | Required | Description |
|---|---|---|---|
dataflow | string | required | BIS dataflow identifier (e.g. "WS_CBPOL", "WS_SPP"). |
country_codes | list[string] | required | ISO alpha-2 country codes to compare (e.g. ["US", "DE", "JP", "NO"]). Maximum 20. |
start_period | any | optional | Start period (e.g. "2020"). Omit for most recent data. |
end_period | any | optional | End period (e.g. "2023"). Omit for most recent data. |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "compare_countries",
"arguments": {
"dataflow": "example",
"country_codes": [
"example"
]
}
}
}report_feedbackReport a bug, feature request, or general feedback for this data source.
Use this when something doesn't work as expected, when you'd like
a new feature, or when you have suggestions for improvement.
Args:
feedback: Describe the issue or suggestion.
feedback_type: One of 'bug', 'feature_request', or 'general'.
| Parameter | Type | Required | Description |
|---|---|---|---|
feedback | string | required | |
feedback_type | string | optional | (default: "general") |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "report_feedback",
"arguments": {
"feedback": "example"
}
}
}Quick Start
curl -X POST "https://context.gnist.ai/mcp/bis/" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_datasets", "arguments": {"query": "example"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/bis/",
headers={"Gnist-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
json={
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "search_datasets",
"arguments": {
"query": "example"
}
}
},
)
print(resp.json())