Unofficial MCP server for Cognite Data Fusion data modeling
Project description
cog-mcp-experimental
MCP server for Cognite Data Fusion data modeling. Exposes data model schemas as resources and instance operations (list, search, query, aggregate, retrieve) as tools.
Quick start
uvx cog-mcp-experimental
Configuration
Configuration is via environment variables — either passed through your MCP client's config, or loaded from a .env file in the working directory.
Using a .env file
Create a .env file (and add it to .gitignore):
CDF_CLIENT_ID=your-client-id
CDF_TENANT_ID=your-tenant-id
CDF_CLUSTER=westeurope-1
CDF_PROJECT=your-project
CDF_CLIENT_SECRET=your-secret
CDF_DATA_MODELS=[{"space": "mySpace", "externalId": "MyModel", "version": "1"}]
CDF_INSTANCE_SPACES=["instanceSpace1"]
The .env file does not override existing environment variables — explicit env vars from your MCP client config or shell always take precedence.
Required environment variables
| Variable | Description |
|---|---|
CDF_CLIENT_ID |
OAuth client ID |
CDF_TENANT_ID |
Azure AD tenant ID |
CDF_CLUSTER |
CDF cluster (e.g. westeurope-1) |
CDF_PROJECT |
CDF project name |
CDF_CLIENT_SECRET |
OAuth client secret |
CDF_DATA_MODELS |
JSON array of data models: [{"space": "s", "externalId": "m", "version": "1"}] |
CDF_INSTANCE_SPACES |
JSON array of space IDs for automatic instance filtering: ["space1"] |
Optional
| Variable | Description |
|---|---|
CDF_TOKEN_URL |
Override OAuth token URL (defaults to Azure AD) |
Client setup
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"cog-mcp-experimental": {
"command": "uvx",
"args": ["cog-mcp-experimental"],
"env": {
"CDF_CLIENT_ID": "your-client-id",
"CDF_TENANT_ID": "your-tenant-id",
"CDF_CLUSTER": "westeurope-1",
"CDF_PROJECT": "your-project",
"CDF_CLIENT_SECRET": "your-secret",
"CDF_DATA_MODELS": "[{\"space\": \"mySpace\", \"externalId\": \"MyModel\", \"version\": \"1\"}]",
"CDF_INSTANCE_SPACES": "[\"instanceSpace1\"]"
}
}
}
}
Cursor
.cursor/mcp.json or ~/.cursor/mcp.json:
{
"mcpServers": {
"cog-mcp-experimental": {
"command": "uvx",
"args": ["cog-mcp-experimental"],
"env": {
"CDF_CLIENT_ID": "your-client-id",
"CDF_TENANT_ID": "your-tenant-id",
"CDF_CLUSTER": "westeurope-1",
"CDF_PROJECT": "your-project",
"CDF_CLIENT_SECRET": "${env:CDF_CLIENT_SECRET}",
"CDF_DATA_MODELS": "[{\"space\": \"mySpace\", \"externalId\": \"MyModel\", \"version\": \"1\"}]",
"CDF_INSTANCE_SPACES": "[\"instanceSpace1\"]"
}
}
}
}
Claude Code
claude mcp add --transport stdio \
--env CDF_CLIENT_ID=your-client-id \
--env CDF_TENANT_ID=your-tenant-id \
--env CDF_CLUSTER=westeurope-1 \
--env CDF_PROJECT=your-project \
--env 'CDF_DATA_MODELS=[{"space":"mySpace","externalId":"MyModel","version":"1"}]' \
--env 'CDF_INSTANCE_SPACES=["instanceSpace1"]' \
cog-mcp-experimental -- uvx cog-mcp-experimental
CDF_CLIENT_SECRET is inherited from your shell environment.
Tools
Discovery
| Tool | Description |
|---|---|
list_views |
List available views with their space, externalId, and version |
get_view_schema |
Get full property schema for a view (names, types, relations) |
get_filter_docs |
Reference documentation for filter syntax |
get_query_docs |
Reference documentation for graph query syntax |
Instance operations
| Tool | Description |
|---|---|
list_instances |
List/filter instances of a view with pagination |
search_instances |
Full-text search across instances |
aggregate_instances |
Count, sum, avg, min, max, histogram |
query_instances |
Graph query across related instances |
retrieve_instances |
Get specific instances by ID |
All instance tools automatically apply space filters from CDF_INSTANCE_SPACES.
Resources
The same discovery information is also available as MCP resources for clients that support them:
| URI | Description |
|---|---|
cdf://views |
List all available views |
cdf://views/{space}/{externalId}/{version} |
View schema with property details |
cdf://docs/filters |
Filter syntax reference |
cdf://docs/querying |
Query syntax reference |
Development
git clone <repo>
cd cog-mcp
uv sync
uv run cog-mcp-experimental
Test with MCP Inspector:
npx @modelcontextprotocol/inspector
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cog_mcp_experimental-0.1.2.tar.gz.
File metadata
- Download URL: cog_mcp_experimental-0.1.2.tar.gz
- Upload date:
- Size: 68.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8f7e282737dc6afb1b1cfeeca5e1c7a88d421655cf9ce8ec18ff24356077417
|
|
| MD5 |
3012dde194709a13069d55da636ccb91
|
|
| BLAKE2b-256 |
0c18447d2923a3c8bafaf94bedf901a635fbb0b9bcc48c083f99d7f03c9c9c46
|
File details
Details for the file cog_mcp_experimental-0.1.2-py3-none-any.whl.
File metadata
- Download URL: cog_mcp_experimental-0.1.2-py3-none-any.whl
- Upload date:
- Size: 15.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2d2649e664da8a9e23d3c4bbb25e1adb7182b1865778a267f8ab88c12c24372
|
|
| MD5 |
5152ae8e65e4f4a2f611c35398daf268
|
|
| BLAKE2b-256 |
d940775be3d4b6c77ed850584407abadcc623784b00169f6655ffef9790feb73
|