Feldspar free repository security scan
Server Details
Free deterministic security scan of public git repos: OSV.dev vulnerable deps, secrets, config lint.
- Status
- Healthy
- Uptime
- 99.8% over 61 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- project-feldspar-resources/feldspar-scan
- GitHub Stars
- 0
- Server Listing
- feldspar-scan
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one returns paid audit pricing information, while the other performs the actual repository security scan. An agent should have no trouble selecting between them based on the user's request.
Both names use snake_case and are readable, but the naming patterns are not fully parallel: scan_repository is a clear verb_noun action, while audit_pricing is more noun_noun and could be read as auditing pricing rather than retrieving audit pricing.
Two tools is thin for a server whose stated purpose is repository security scanning. The core scan is present, but the only other tool is ancillary pricing information, making the surface feel under-scoped.
scan_repository covers the main scan operation in detail, including multiple ecosystems and finding severities. However, there are notable gaps around follow-up workflows such as report retrieval, scan history, private repository support, or deeper remediation guidance.
Available Tools
2 toolsaudit_pricingPaid code audits: scope, prices and termsARead-onlyIdempotentInspect
Returns the scope, prices, delivery times, terms and order links of Project Feldspar's paid code audits, which an AI agent performs. Use it when the user asks about a paid code audit. No arguments.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds a little context: the audits are performed by an AI agent, and the result is informational content retrieved with no arguments. It stops short of adding anything about the shape or currency of the returned pricing data, so this is a modest supplement on top of rich annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler; the returned content is front-loaded and the usage trigger follows immediately. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates what comes back (scope, prices, delivery times, terms, order links), which is effectively an inline return-value summary. It does not say how that information is formatted or whether prices are currency-qualified, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case. The description reinforces this with an explicit 'No arguments', leaving no ambiguity about invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (returns) and a precisely enumerated resource (scope, prices, delivery times, terms and order links of paid code audits). The subject matter is unmistakably distinct from the sibling scan_repository, so an agent can select between them without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the triggering condition: 'Use it when the user asks about a paid code audit.' That is clear positive guidance, but there is no stated exclusion or alternative route for adjacent questions (e.g. free audits or general repo questions), which would be needed for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_repositoryScan a public repositoryARead-onlyIdempotentInspect
Clone a public git repository and run feldspar-scan: OSV.dev advisories for pinned dependencies in lockfiles (npm, pnpm, yarn, pip/uv/poetry, Cargo, Go, Gemfile.lock), secret patterns with redacted evidence, and configuration lint. Returns a JSON report with summary counts and per-finding severity, file, line, advisory id and fixed versions. Deterministic, no LLM involved. Takes 2-90 s depending on repository size. Returns the most severe findings first, 25 unless max_findings asks for more (up to 200); the summary counts cover every finding, and large per-file breakdowns are left out and named under omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The repository URL only, e.g. https://github.com/owner/repo (also gitlab.com, codeberg.org, bitbucket.org) | |
| category | No | Return only findings of this category (default: all). | |
| max_findings | No | How many findings to return, most severe first (default 25, at most 200). | |
| min_severity | No | Return only findings of this severity or higher (default: all severities). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which already declare read-only, idempotent, non-destructive, open-world), it discloses determinism, no LLM involvement, latency range, severity ordering, and — critically — that the default 25-finding cap does not truncate the summary counts while large per-file breakdowns are dropped and named under 'omitted'. That truncation contract is exactly the kind of behavior an agent cannot infer elsewhere.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and scan scope are front-loaded, and every sentence carries information (lockfile ecosystems, output shape, runtime, truncation). It is a single dense run-on paragraph, though, so the truncation and ordering rules are buried mid-stream rather than separated out.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description takes on the full burden and delivers: it names the report structure, the per-finding fields (severity, file, line, advisory id, fixed versions), ordering, and truncation semantics. An agent knows what it will get back and how complete it will be.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description still adds value by explaining how max_findings interacts with the summary counts and the 'omitted' section, and by implying severity-first ordering. It adds no extra detail on category or min_severity beyond the enum descriptions, keeping it below a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb chain (clone + run feldspar-scan) and enumerates exactly what is scanned: OSV.dev advisories for pinned dependencies across named lockfile formats, secret patterns, and config lint. The tool is distinguishable from the only sibling, audit_pricing, which is an unrelated pricing audit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies when it applies through hard constraints — public repositories only, supported hosts listed in the schema, and a 2-90 s runtime that tells an agent to expect latency. It never states an explicit exclusion or names an alternative path, but no sibling overlaps meaningfully, so the gap is minor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
scan_repository3 fields changed- added
Input schema / properties / categoryAdded value: +{ + "description": "Return only findings of this category (default: all).", + "enum": [ + "dependency-vuln", + "secret", + "config" + ], + "type": "string" +} - added
Input schema / properties / max_findingsAdded value: +{ + "default": 25, + "description": "How many findings to return, most severe first (default 25, at most 200).", + "maximum": 200, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / min_severityAdded value: +{ + "description": "Return only findings of this severity or higher (default: all severities).", + "enum": [ + "critical", + "high", + "medium", + "low" + ], + "type": "string" +}
1 tool update
- Changed
scan_repository1 field changed- changed
Input schema / properties / url / descriptionPrevious value: -"https://github.com/owner/repo (also gitlab.com, codeberg.org, bitbucket.org)"New value: +"The repository URL only, e.g. https://github.com/owner/repo (also gitlab.com, codeberg.org, bitbucket.org)"
Related MCP Connectors
Read-only scan of a public GitHub repo for leaked secrets, with a 0-100 grade.
Free read-only check of a public GitHub repo for eight security signals related to the EU CRA.
Generate SBOMs, scan vulnerabilities, and analyze dependencies from local projects or Git repos.
Audit GitHub repos for malicious and supply-chain code before you depend on them.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceScans GitHub repositories for security vulnerabilities by cloning, performing static analysis, secret detection, build verification, and AI-powered OWASP-aligned code review, producing a scored SECURITY.md report.-
- FlicenseNot gradedqualityCmaintenanceScans Python, Node.js, Java/Spring, and PHP dependency manifests for known vulnerabilities using OSV and GitHub Advisory APIs.-
- AlicenseNot gradedqualityDmaintenanceProvides deterministic, 100%-file-coverage security findings by running Semgrep, gitleaks, and osv-scanner on code repositories, enabling thorough security assessment of every file.MIT

@guardbee/mcp-dependencyofficial
AlicenseNot gradedqualityFmaintenanceEnables auditing npm, pip, and other package dependencies for known CVEs via the OSV database, with tools to scan manifests, query individual packages, and integrate into CI/CD workflows.785 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.