Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cog_mcp_experimental-0.2.1.tar.gz (68.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cog_mcp_experimental-0.2.1-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file cog_mcp_experimental-0.2.1.tar.gz.

File metadata

  • Download URL: cog_mcp_experimental-0.2.1.tar.gz
  • Upload date:
  • Size: 68.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cog_mcp_experimental-0.2.1.tar.gz
Algorithm Hash digest
SHA256 36ff9af990bcaada779b55430db9a04d18ef71e67e522b53f97d1a9aaaec630a
MD5 882366c0d4558af125f93b9b77932d06
BLAKE2b-256 9c38f72de9edf0644a28a8ef7dc51f0a7688b0e1115fd28f8fbda249849d1191

See more details on using hashes here.

File details

Details for the file cog_mcp_experimental-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: cog_mcp_experimental-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 15.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cog_mcp_experimental-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0845555a1a55f67d0cd7788c4c6f48704d91d83c31c8096e95eb4f4a510002f1
MD5 a564137ca72d7d308eead863ec38a396
BLAKE2b-256 2cada45227972630b82d2a9b99cbe28b9185451cbd297ad60cc0742b503ec639

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page