GeekWala MCP Server for Dependency Vulnerability Scanning
Let your AI coding assistant check a package version, scan a manifest or look up a CVE, with EPSS and CISA KEV context. Read-only, free API token.
GeekWala runs a hosted Model Context Protocol (opens in a new tab) (MCP) server at https://www.geekwala.com/mcp. Connect it to Claude Code, Cursor or VS Code and your assistant can ask GeekWala whether a dependency has known vulnerabilities while it is choosing, adding or upgrading it, instead of guessing from training data that may be months old.
Results come from the same data as the GeekWala scanner: OSV advisories across npm, PyPI, Maven, Packagist, Go, crates.io, RubyGems and NuGet, enriched with EPSS exploit-probability scores and the CISA KEV catalog of vulnerabilities known to be exploited. The server is read-only: it never changes your code, your projects or your account.
Three read-only tools
Your assistant picks the right tool from its description. Every tool only reads from GeekWala's vulnerability data.
check_package
Check one package version
Known vulnerabilities for one exact package version, most urgent first: CISA KEV, then EPSS exploit probability, then CVSS and severity. Each finding lists the versions that fix it and links to its GeekWala CVE page. Use it before adding or upgrading a dependency. It needs the exact installed version, not a range.
ecosystem(required) npm, PyPI, Maven, Packagist, Go, crates.io, RubyGems or NuGet.name(required) Package name as the registry spells it.version(required) The exact version, such as 4.17.21.
scan_dependencies
Scan a manifest or lockfile
Scans the text of a dependency file (package-lock.json, composer.lock, requirements.txt, go.mod, pom.xml and other supported manifests and lockfiles). It returns a summary for the whole file, then the most urgent vulnerable packages first, with fixed versions. Long results are capped and say so. Read-only: no project, scan or file is created or stored on your account.
content(required) The complete text of the file.filename(optional) The file name, such as package-lock.json. Inferred from the content when omitted.
get_vulnerability
Look up a CVE or advisory
Details for one advisory from the GeekWala database: severity, CVSS, EPSS, CISA KEV status, affected packages and fixed versions, and references. This is a database lookup only, so an advisory GeekWala has not ingested returns "not found".
id(required) A CVE id, a GitHub advisory id (GHSA-...) or another OSV id such as PYSEC-... or GO-....
Things to ask your assistant
- “Is lodash 4.17.20 safe to use? Check it for known vulnerabilities.”
- “Scan this package-lock.json and tell me which findings are actively exploited.”
- “What does CVE-2021-44228 affect, and which version fixes it?”
Step 1: get a free API token
- Create a free GeekWala account (opens in a new tab) and verify your email address.
- Open the API tokens page (opens in a new tab) and create a token with the
scan:readability. That is the only ability the MCP server needs, and it is available on every plan. - Copy the token when it is shown. GeekWala shows it once, so store it in a password manager or an environment variable, never in a file you commit.
A Free account can hold 1 API token.
Step 2: connect your client
The server uses the Streamable HTTP transport and expects your token in an Authorization: Bearer <token> header. The snippets below follow each vendor's current documentation; they have not yet been tested end to end with a live token. Replace the placeholder, or set the environment variable the snippet names, and never paste a real token into a shared file.
Claude Code
Add the server from your terminal. It is stored in local scope by default (private to you, only this project, in your Claude Code configuration file); add --scope user to make it available in every project.
claude mcp add --transport http geekwala https://www.geekwala.com/mcp \
--header "Authorization: Bearer YOUR_GEEKWALA_TOKEN"Run claude mcp list, or /mcp inside Claude Code, to confirm the server connected.
Alternative: a shared .mcp.json
To share the setup with a team, put it in .mcp.json and keep the token out of the file with environment variable expansion; each teammate sets GEEKWALA_API_TOKEN in their own environment. If you get an invalid-token error, check the variable is non-empty in the shell that launches Claude Code.
{
"mcpServers": {
"geekwala": {
"type": "http",
"url": "https://www.geekwala.com/mcp",
"headers": {
"Authorization": "Bearer ${GEEKWALA_API_TOKEN}"
}
}
}
}Cursor
Add the server to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project). Cursor expands ${env:NAME} in url and headers, so export GEEKWALA_API_TOKEN in the environment Cursor starts from.
{
"mcpServers": {
"geekwala": {
"url": "https://www.geekwala.com/mcp",
"headers": {
"Authorization": "Bearer ${env:GEEKWALA_API_TOKEN}"
}
}
}
}VS Code (GitHub Copilot)
Add the server to .vscode/mcp.json in your workspace, or run MCP: Open User Configuration from the Command Palette to add it to your profile. The inputs entry makes VS Code prompt you for the token the first time the server starts and store it securely, so nothing secret lands in the file. Input prompts work in this VS Code format only, not in the portable .mcp.json format.
{
"inputs": [
{
"type": "promptString",
"id": "geekwala-token",
"description": "GeekWala API token (scan:read)",
"password": true
}
],
"servers": {
"geekwala": {
"type": "http",
"url": "https://www.geekwala.com/mcp",
"headers": {
"Authorization": "Bearer ${input:geekwala-token}"
}
}
}
}Using another MCP client? Any client that supports the Streamable HTTP transport and custom request headers can connect with the endpoint and the Authorization header above. The setup syntax was checked against the vendors' documentation for the three clients on this page only.
Security and privacy
- Read-only. The server needs only the
scan:readtoken ability and exposes no tool that changes your projects, settings or repository. - Manifests are analysed, not stored.
scan_dependenciesparses the file text you send and returns findings. No project, scan or file is created or stored on your account, and the contents of the file are never logged or stored. The package names and versions in it are looked up in GeekWala's shared vulnerability cache, which is not tied to your account. - Usage metrics we keep. To enforce limits and spot abuse we store counts by tool, hour and outcome (including the kind of error), per account ID, and per anonymised IP address: a keyed hash plus the network prefix (a /24 for IPv4), never the raw address. Hourly rows are kept for 30 days and daily totals for 365 days. We also keep a permanent record of when each token was first used; it is unlinked from your account if the account is deleted.
- Application logs. Our operational logs can include, for each tool call, your account ID, the tool, its outcome and duration, the size in bytes of what you sent, and the IP address of the connection. For
scan_dependenciesthe file name is logged too. Warnings written when a limit is hit also carry the IP address. We never log your token or the contents of the files you send. Log retention is separate from the metrics periods above. - Rate-limit state. Connection-level rate limits and the failed-authentication lockout key on the connecting IP address, and that state expires on its own within minutes.
- You stay in control of the token. Revoke it any time from the API tokens page (opens in a new tab); the assistant loses access immediately. Use one token per machine so a single revocation is easy.
- Your assistant sees the results. Whatever a tool returns is passed to your AI model provider as part of the conversation. Do not send manifests you are not allowed to share with that provider. Advisory text in the results (summaries, details, references) comes from third-party sources and is labelled as untrusted data for your assistant, which is told never to follow instructions or open links found in it. Treat it with the same caution as any web content.
More on how GeekWala handles scanned data: Platform security.
Limits
Limits follow the plan of the account that owns the token, the same as the REST API. Each plan has a per-minute request limit and a daily cap on tool calls.
Scroll the table sideways to see every column.
| Plan | Requests per minute | scan_dependencies per minute | Tool calls per day | scan_dependencies per day |
|---|---|---|---|---|
| Free | 120 | 15 | 200 | 50 |
| Pro | 240 | 30 | 2000 | 500 |
- The daily caps are counted per account over the UTC day and reset at 00:00 UTC. Every tool call counts toward the daily total, and each
scan_dependenciescall also counts toward its own daily cap. An account on a Pro trial uses the Pro limits. scan_dependenciesaccepts files up to 512 KB and up to 500 packages per scan, the same limits as the REST API scan endpoint.- A request over a limit is declined with HTTP 429. Per-minute limits clear within a minute; daily caps clear at the next 00:00 UTC.
Need higher limits? See pricing for what each plan includes and to upgrade.
How it fits with npm audit, pip-audit, Snyk, Dependabot, Trivy and Grype
The MCP server does not replace the scanners you run in CI. Those tools check a project, image or repository you point them at. This server answers a different question at a different moment: “is this package version safe?” while your assistant is choosing or upgrading a dependency, with EPSS and CISA KEV signals so you can tell the findings that matter from the ones that do not. Use it alongside whatever you already run.
| Tool | Typically used for | Compared |
|---|---|---|
| npm audit | Auditing the installed dependency tree of an npm project | GeekWala vs npm audit |
| pip-audit | Auditing Python environments and requirements files | Alternatives to pip-audit |
| Snyk | A commercial developer-security platform | GeekWala vs Snyk |
| Dependabot | Dependency alerts and update pull requests on GitHub | GeekWala vs Dependabot |
| Trivy | Scanning container images, file systems and repositories | GeekWala vs Trivy |
| Grype | Scanning container images and file systems for known vulnerabilities | GeekWala vs Grype |
See all of the side-by-side pages on Compare tools. To gate pull requests in CI, use the GitHub Actions integration.
Frequently asked questions
Is the MCP server free?
Yes. You need a GeekWala account and an API token, and a free account can create one. Free accounts run at the Free limits shown above; paid plans raise them. See pricing.
What happens when I hit a limit?
The tool call is declined with HTTP 429 and a JSON-RPC error that says which limit you reached. For the daily cap the error names the cap and when it resets; the counter resets at 00:00 UTC. A Free account can make 200 tool calls a day. Per-minute limits clear within a minute, so a short wait and a retry is enough. To raise the ceiling, see pricing.
Can it change my code or my GeekWala projects?
No. All three tools are read-only and the token only needs the scan:read ability. The server does not edit files, open pull requests or modify your projects.
Which ecosystems does it cover?
npm, PyPI, Maven, Packagist, Go, crates.io, RubyGems and NuGet, the same ecosystems as the GeekWala scanner.
What do EPSS and CISA KEV add?
CVSS rates how severe a flaw could be. EPSS estimates how likely it is to be exploited, and the CISA KEV catalog lists flaws already exploited in the wild. Returning all three lets your assistant tell you what to fix first instead of listing everything at the same weight. Read more in Understanding vulnerabilities.
Can I use it from a different MCP client?
Probably, if the client supports the Streamable HTTP transport and custom request headers: use the endpoint above and an Authorization: Bearer header. Setup for Claude Code, Cursor and VS Code is documented on this page; other clients are not verified.
The assistant says it is unauthorised. What now?
Check that the token is current and has the scan:read ability, and that the header reads Authorization: Bearer followed by the token. If you set the token through an environment variable, restart the client so it picks the variable up. You can create a new token on the API tokens page (opens in a new tab).
Learn more
- API documentation for the REST API behind the same tokens
- Understanding vulnerabilities for how CVSS, EPSS and KEV fit together
- Free dependency scan to try GeekWala without an account
Get a free GeekWala API token
Create an account, generate a scan:read token, and give your AI coding assistant a vulnerability database to check against.