Koskamo

Commit MCP

Supply chain risk scoring for npm, PyPI, Cargo, and Go packages using behavioral signals like publisher depth, release consistency, and download trends. It helps agents audit dependencies for critical risks such as sole publisher control over high-download packages.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Commit MCP logo, by getcommit.devCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by getcommit.dev
MCP endpoint (Streamable HTTP)
https://poc-backend.amdal-dev.workers.dev/mcp
Vendor documentation

What its tools do

12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

12 of 12 have a description · 0 of 12 declare behavior hints · 12 of 12 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Audit npm, PyPI, Cargo, and Go packages for supply chain risk
  • Check publisher depth and release consistency
  • Identify critical risks like sole publisher control
  • Integrate with Claude Desktop or Cursor for automated auditing

Source and maintenance

Community listingRegistry 1.36.0
Maintenance checked

Protocol and capabilities

Server
proof-of-commitment 1.14.0
MCP protocol negotiated in check
2025-11-25
Tools
12 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools

12 advertised

query_commitment
Advertised by the server during the last successful anonymous check.

Query verified behavioral commitment data for a domain. Returns aggregated signals: unique verified visitors, repeat visit rate, and average time spent. These prove real human engagement — harder to fake than reviews or content.

query_commitment input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "The domain to query (e.g. 'example.com'). Will be normalized to lowercase without protocol or path."
    }
  }
}
lookup_business
Advertised by the server during the last successful anonymous check.

Search for a Norwegian business and get its commitment profile from public data (Brønnøysund Register Centre). Returns real commitment signals: longevity, financial health, employee count, and overall commitment score (0-100). Data source: Norwegian government registers — free, verified, unfakeable.

lookup_business input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Business name to search for (e.g. 'Peppes Pizza', 'Equinor')"
    }
  }
}
lookup_business_by_org
Advertised by the server during the last successful anonymous check.

Look up a specific Norwegian business by organization number (9 digits) and get its commitment profile. Returns temporal, financial, and operational commitment signals from Brønnøysund Register Centre.

lookup_business_by_org input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "orgNumber"
  ],
  "properties": {
    "orgNumber": {
      "type": "string",
      "description": "Norwegian organization number (9 digits, e.g. '984388659')"
    }
  }
}
lookup_github_repo
Advertised by the server during the last successful anonymous check.

Get a behavioral commitment profile for any public GitHub repository. Returns real signals that prove genuine investment: how long the project has existed, recent commit frequency, contributor community size, release cadence, and social proof. These are behavioral commitments — harder to fake than README claims or marketing copy. Useful for: vetting open-source dependencies, evaluating AI tools/frameworks, assessing vendor reliability, due diligence on any GitHub project. Examples: "vercel/next.js", "facebook/react", "https://github.com/piiiico/proof-of-commitment"

lookup_github_repo input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "repo"
  ],
  "properties": {
    "repo": {
      "type": "string",
      "description": "GitHub repository in \"owner/repo\" format or full URL. Examples: \"vercel/next.js\", \"https://github.com/facebook/react\""
    }
  }
}
lookup_npm_package
Advertised by the server during the last successful anonymous check.

Get a behavioral commitment profile for any npm package. Returns real signals that prove genuine investment: package age, download volume and trend (growing/stable/declining), release consistency, npm publisher count, GitHub contributor count, and linked GitHub activity. Also returns publisherLifecycle — cross-referencing current maintainers against per-version publish history to flag dormant publishers who still hold npm scope access. The Mastra incident (June 2026) exploited exactly this: a contributor dormant since 2024 with never-revoked scope access. Why behavioral signals matter: download counts, stars, and READMEs can be gamed. Download *trend* consistency and publisher depth over years are harder to fake. Supply chain attacks often target packages with low publisher depth (few people with npm publish access). Useful for: vetting dependencies before installation, due diligence on open-source packages, identifying abandonware, checking if a package is actively maintained. Examples: "langchain", "@anthropic-ai/sdk", "express", "litellm"

lookup_npm_package input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "package"
  ],
  "properties": {
    "package": {
      "type": "string",
      "description": "npm package name. Examples: \"langchain\", \"@anthropic-ai/sdk\", \"express\". Scoped packages need the @ prefix."
    }
  }
}
lookup_pypi_package
Advertised by the server during the last successful anonymous check.

Get a behavioral commitment profile for any PyPI (Python) package. Returns real signals: package age, download volume and trend, release consistency, publisher/owner count, and linked GitHub activity. Supply chain attacks target Python packages — LiteLLM (97M downloads/mo) was compromised via stolen PyPI token in March 2026. Behavioral signals reveal what star counts hide. Useful for: vetting Python dependencies, identifying abandonware, supply chain risk due diligence. Examples: "langchain", "litellm", "openai", "anthropic", "requests", "fastapi", "pydantic"

lookup_pypi_package input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "package"
  ],
  "properties": {
    "package": {
      "type": "string",
      "description": "PyPI package name. Examples: \"langchain\", \"openai\", \"requests\", \"fastapi\". Case-insensitive."
    }
  }
}
lookup_cargo_crate
Advertised by the server during the last successful anonymous check.

Get a behavioral commitment profile for any Rust crate on crates.io. Returns real signals: crate age, download volume (estimated weekly from 90-day totals), version count, publish cadence, owner count (users with publish access), team owners, and linked GitHub activity. Supply chain risks apply to Cargo too — crate owners with publish access are the attack surface. A single owner on a high-download crate is the same risk pattern as npm. Useful for: vetting Rust dependencies before adding to Cargo.toml, identifying abandonware, supply chain risk assessment. Examples: "serde", "tokio", "reqwest", "clap", "rand"

lookup_cargo_crate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "crate"
  ],
  "properties": {
    "crate": {
      "type": "string",
      "description": "Crate name on crates.io. Examples: \"serde\", \"tokio\", \"reqwest\", \"clap\". Case-insensitive."
    }
  }
}
lookup_go_module
Advertised by the server during the last successful anonymous check.

Get a behavioral commitment profile for any Go module on proxy.golang.org. Takes a full module path (e.g., "github.com/gin-gonic/gin", "golang.org/x/net", "k8s.io/client-go", "gopkg.in/yaml.v3") and returns real signals: module age, version count, publish cadence, GitHub contributors (the closest equivalent to "publishers" since Go has no centralized publisher concept — git push access is the publish equivalent), GitHub stars, OpenSSF Scorecard score. The Go ecosystem has no centralized download counter, so this profile is GitHub-primary — the linked source repository's activity, contributor count, and Scorecard carry more weight than for npm/PyPI/Cargo. Stars are used as the popularity proxy. Useful for: vetting Go dependencies before adding to go.mod, identifying abandonware, supply chain risk assessment. Examples: "github.com/gin-gonic/gin", "golang.org/x/crypto", "github.com/spf13/cobra", "k8s.io/api"

lookup_go_module input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "module"
  ],
  "properties": {
    "module": {
      "type": "string",
      "description": "Full Go module path. Must include the host. Examples: \"github.com/gin-gonic/gin\", \"golang.org/x/net\", \"k8s.io/client-go\", \"gopkg.in/yaml.v3\". Case-sensitive (preserves capitalization in path)."
    }
  }
}
audit_dependencies
Advertised by the server during the last successful anonymous check.

Batch-score multiple npm, PyPI, Cargo, or Go packages for supply chain risk. Takes a list of package names and returns a risk table sorted by commitment score (lowest = highest risk first). Risk flags: - CRITICAL: single publisher + >10M weekly downloads (publish-access concentration risk) - HIGH: new package (<1yr) + high downloads (unproven, rapid adoption = supply chain risk) - WARN: no release in 12+ months (potential abandonware) - WARN: dormant publishers with current scope access — contributors who stopped publishing but retain npm tokens (Mastra-incident vector, June 2026) Perfect for auditing a full package.json, requirements.txt, Cargo.toml, or go.mod — paste your dependency list and get a prioritized risk report. For Go: pass full module paths (e.g., "github.com/gin-gonic/gin", "golang.org/x/net") and set ecosystem="golang". The "maintainers" column shows GitHub contributor count since Go has no centralized publisher concept. Examples: score all deps in a project, compare two similar packages, identify abandonware before it becomes a CVE.

audit_dependencies input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "packages"
  ],
  "properties": {
    "packages": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "minItems": 1,
      "description": "List of package names to score. Up to 20 at once. Examples: [\"langchain\", \"litellm\", \"openai\", \"axios\"] or [\"@anthropic-ai/sdk\", \"zod\", \"express\"] or [\"github.com/gin-gonic/gin\", \"golang.org/x/net\"] for Go modules."
    },
    "ecosystem": {
      "enum": [
        "npm",
        "pypi",
        "cargo",
        "golang",
        "auto"
      ],
      "type": "string",
      "default": "auto",
      "description": "Package ecosystem. \"auto\" detects by naming convention (Python-style = pypi, otherwise npm). Force \"npm\", \"pypi\", \"cargo\", or \"golang\" to override. Go modules require full path (host/owner/repo) — use \"golang\"."
    }
  }
}
audit_github_repo
Advertised by the server during the last successful anonymous check.

Audit the supply chain risk of a GitHub repository's dependencies. Fetches the repo's package.json and/or requirements.txt from GitHub and runs behavioral commitment scoring on every dependency. This is the fastest way to audit a project — just provide the GitHub URL or owner/repo slug, and get a full risk table in seconds. Risk flags: - CRITICAL: single publisher/maintainer/owner + >10M weekly downloads (publish-access concentration risk) - HIGH: sole publisher/maintainer + >1M/wk downloads, OR new package (<1yr) with high adoption - WARN: no release in 12+ months (potential abandonware) Examples: - "vercel/next.js" — audit Next.js dependencies - "https://github.com/langchain-ai/langchainjs" — audit LangChain JS - "facebook/react" — audit React's dependency tree - "anthropics/anthropic-sdk-python" — audit Anthropic Python SDK Use this when someone asks "is my project at risk?" or "audit this repo's dependencies".

audit_github_repo input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "repo"
  ],
  "properties": {
    "repo": {
      "type": "string",
      "description": "GitHub repository to audit. Accepts: \"owner/repo\", \"https://github.com/owner/repo\", or any GitHub URL. Examples: \"vercel/next.js\", \"https://github.com/langchain-ai/langchainjs\""
    }
  }
}
audit_dependency_tree
Advertised by the server during the last successful anonymous check.

Map the full dependency tree of an npm package and identify CRITICAL supply chain risks at every level. Unlike auditing a flat list of packages, this tool traverses the dependency graph — showing not just your direct dependencies but also what your dependencies depend on. Hidden CRITICAL packages (sole publisher + >10M weekly downloads) often lurk 1-2 levels deep. Risk flags: - CRITICAL: single npm publisher + >10M weekly downloads — sole point of failure for a massive attack surface - HIGH: sole publisher + >1M/wk, OR new package (<1yr) with high adoption - WARN: no release in 12+ months (potential abandonware) depth=1 (default): root package + all direct dependencies depth=2: also traverses one more level for any CRITICAL/HIGH direct deps (reveals hidden exposure) Examples: - audit_dependency_tree("express") — see all of Express's deps and their risk scores - audit_dependency_tree("langchain", 2) — reveal transitive CRITICAL deps 2 levels deep - audit_dependency_tree("@anthropic-ai/sdk") — audit Anthropic SDK full tree Use this when someone asks: - "What am I really depending on?" - "Are my dependencies' dependencies safe?" - "Show me the full supply chain risk for package X"

audit_dependency_tree input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "package"
  ],
  "properties": {
    "depth": {
      "type": "integer",
      "default": 1,
      "maximum": 2,
      "minimum": 1,
      "description": "How deep to traverse. 1 = direct deps only (fast). 2 = also traverse deps of CRITICAL/HIGH packages (slower, reveals hidden risk). Default: 1"
    },
    "package": {
      "type": "string",
      "description": "npm package name to map. Examples: \"express\", \"langchain\", \"@anthropic-ai/sdk\", \"zod\""
    }
  }
}
get_api_key
Advertised by the server during the last successful anonymous check.

Create a free Commit API key instantly — no browser required. When you've hit the daily free query limit (or just want faster access), call this tool with your email to get an API key returned directly in the chat. The key lifts the rate limit to 200 audits/day and enables package monitoring (weekly alerts when your dependencies get riskier). After creating the key, configure your MCP client to pass it: Authorization: Bearer sk_commit_<your-key> Example: get_api_key({ email: "dev@company.com" }) One key per email. 3 keys per IP per day (anti-abuse).

get_api_key input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "Your email address — used for alert delivery and key recovery. One key per email."
    }
  }
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-06: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1064 ms
95th percentile latency
1064 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1064 ms · metadata changed · 12 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http commit-mcp-workers https://poc-backend.amdal-dev.workers.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add commit-mcp-workers --url https://poc-backend.amdal-dev.workers.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable commit-mcp-workers in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "commit-mcp-workers": {
      "url": "https://poc-backend.amdal-dev.workers.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "commit-mcp-workers": {
      "type": "streamableHttp",
      "url": "https://poc-backend.amdal-dev.workers.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start commit-mcp-workers and inspect its tools.
VS Code configuration
{
  "servers": {
    "commit-mcp-workers": {
      "type": "http",
      "url": "https://poc-backend.amdal-dev.workers.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http commit-mcp-workers https://poc-backend.amdal-dev.workers.dev/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://poc-backend.amdal-dev.workers.dev/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "commit-mcp-workers": {
      "serverUrl": "https://poc-backend.amdal-dev.workers.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Commit MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.