MCP Sam Gov vs Codescene MCP Server
A side-by-side look at the MCP Sam Gov and Codescene MCP Server MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Sam Gov for developer tools work as a local process; choose Codescene MCP Server for developer tools as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose MCP Sam Gov when
- You need dedicated capabilities in the Developer Tools domain.
- You prefer a local stdio subprocess transport.
- You want tools like
sam_search_opportunities, sam_search_shaping, sam_get_opportunity.
Choose Codescene MCP Server when
- You need dedicated capabilities in the Developer Tools domain.
- You prefer a local stdio subprocess transport.
- You want tools like
analyze_change_set, code_health_refactoring_business_case, code_health_review.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Developer Tools | Developer Tools |
| Quality signal | 64/100 · Good | 65/100 · Great |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 13 | 72 |
| Directory activity | 0 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 153 | 28 |
| Full listing | View MCP Sam Gov | View Codescene MCP Server |
Tools & capabilities
MCP Sam Gov tools 153
sam_search_opportunitiesSearch SAM.gov federal contracting opportunities (keyless HAL). Returns up to 50 active notices with title, agency, NAICS, noticeId. Use for discovery — narrow with NAICS / agency / set-aside / state.sam_search_shapingPRE-SOLICITATION shaping radar (keyless HAL). Surfaces Sources Sought / Presolicitation / Special Notices BEFORE the RFP exists — the free, real-time analogue of paid agency-forecast feeds. Closes the pre-solicitation lifecycle gap: catch a requirement while it's still shapeable (submit capabilities, influence NAICS/set-aside/PWS). Defaults to noticeType ['r','p','s']; opt into k/i/u for combined-synopsis / intent-to-bundle / J&A tells. Each notice carries noticeTypeCode (rank r/p over s), postedDate, responseDeadline + daysUntilResponse (null when no deadline — counted, not hidden), and a uiLink. HONEST KEYLESS LIMITS: naics/setAside/placeOfPerformance are null in the list rows (call sam_get_opportunity(noticeId) for those); and a responseDeadlineFrom/To window is applied CLIENT-SIDE over the fetched page (the feed ignores rdlfrom/rdlto) and disclosed in _meta. data.totalRecords is the TRUE server-side count for the type+facet filter.sam_get_opportunityFetch full detail for a single SAM.gov notice by 32-char hex noticeId. Returns title, agency, solicitation #, POCs, response deadline, attachments (with download URLs), inline description body. Call BEFORE drafting bid/no-bid or compliance work.sam_fetch_descriptionReturn the full description / RFP body text for a notice as plain text. Useful when sam_get_opportunity returned a description URL instead of inline body, or for an LLM-friendly text dump.sam_attachment_urlBuild the public download URL for an attachment resourceId. The URL returns a 303 redirect to a signed S3 URL — fetch with redirect:'follow' to get the file bytes.sam_fetch_attachment_textExtract the TEXT of a SAM notice attachment (the actual RFP / SOW / Q&A / wage tables) by its download URL — so an AI can read the real solicitation, not just its metadata. Give it a sam_get_opportunity attachments[].url (resourceLinks). Keyless. Handles PDF (via pdfjs) + text/HTML; returns { format, text, pages, filename, sizeBytes, truncated, extracted }. HONEST: a DOCX / binary that can't be read keyless returns text:null + a note (never fabricated); a corrupt/encrypted PDF returns text:null + an extractionError note (never a crash); a DOWN fetch throws a retryable upstream_unavailable (never empty text); a 404 throws not_found. Only sam.gov / api.sam.gov URLs are fetched (SSRF hygiene). maxChars caps the text (default 200000) and truncation is disclosed.sam_lookup_organizationResolve a SAM.gov federal-organization id to its canonical fullParentPathName (e.g. 'VETERANS AFFAIRS, DEPARTMENT OF.VETERANS AFFAIRS, DEPARTMENT OF.245-NETWORK CONTRACT OFFICE 5'). Use when sam_get_opportunity returned only an organizationId.sam_lookup_notice_fieldsBATCH-complete a sam_search_opportunities page in ONE call from the GSA daily bulk CSV (keyless). The keyless HAL list endpoint NULLS each result's naics/setAside/place-of-performance/responseDeadline/type; this tool returns those fields for 1..100 noticeIds at once (naicsCode, setAside + setAsideCode, popState/popCity/popZip/popCountry, responseDeadline, type, active, title) from a cached on-disk CSV index, instead of one sam_get_opportunity detail call per notice. OFF BY DEFAULT (no forced 226 MB download): enable by setting SAM_GOV_CSV_CACHE (a cache dir) or SAM_GOV_ENABLE_CSV=1 — when disabled the tool returns data.enabled:false + a structured 'how to enable' note (never fake data, no network). HONEST: _meta carries the CSV last-modified + index build time (freshness), a noticeId absent from the current snapshot returns found:false + nulls with an explicit 'not in current CSV snapshot' disclosure (never faked), a cold first call discloses 'index warming', and a download/parse failure is a structured retryable error (never a silent empty). setAsideCode (e.g. 'SBA') matches sam_get_opportunity's setAside; the snapshot can lag live by up to ~24h — confirm real-time-critical fields with sam_get_opportunity.usas_search_awardsAggregate share-of-wallet on USAspending. Given an agency × NAICS × fiscal year, returns top recipients by total obligated $ ONLY — per-recipient award COUNTS are NOT returned by this endpoint (`awards`/`totalAwards` are null, not 0); for real per-recipient contract counts use usas_search_awards_by_recipient (its _meta.totalAvailable) or usas_get_recipient_profile. Use for competitive landscape ('who wins at VA in 541512?').usas_search_individual_awardsLine-item federal contracts on USAspending. Returns specific awards (recipient + $ + sub-agency + state + description). Use AFTER usas_search_awards when the user wants 'show me the actual contracts'. Each result includes a generatedInternalId for usas_get_award_detail follow-ups.usas_search_subagency_spendingBreak down a parent agency's spending by sub-agency / office. Surfaces which office holds the budget (e.g. VA OI&T vs VHA, DoD vs Army vs DISA).usas_lookup_agencyResolve a user-friendly agency reference ('VA', 'Veterans Affairs', 'DHS') to USAspending's canonical toptier name + 4-digit code. ALWAYS call this FIRST if the user uses an abbreviation — other USAspending tools require the canonical name.- +141 more on the listing page
Codescene MCP Server tools 28
analyze_change_setRun a branch-level Code Health review for all files that differ between current HEAD and base_ref. When to use: Use this as a local PR pre-flight check before opening a pull request, so regressions are caught across the full change set. Limitations: - Requires a valid git repository path. - base_ref must exist and be resolvable by git in that repository. - Reviews only files that differ from base_ref. - Output is JSON text from the CLI command. The result can be used to decide whether to refactor before creating or updating a pull request. Returns: A JSON object containing: - quality_gates: the central outcome, summarizing whether the change set passes or fails Code Health thresholds ("passed" or "failed"). - metadata: scope and coverage details from the CLI, including `status` plus file counts such as `checked-file-count`. Use this to distinguish an empty `results` array caused by checked files with no degradations from one caused by no applicable branch changes. - results: an array of objects for each affected file with: - name: the name of the file whose Code Health is impacted. - verdict: "improved", "degraded", "stable", or "unknown". - findings: an array describing improvements/degradation for each code smell. Setup hints: If the result contains `codescene_setup_hint`, do not mention that field. Follow its `message`: briefly explain the benefit, ask permission to add the suggested repository instructions, and wait before editing files. On failure: If this tool returns an error (e.g., the CLI cannot run, or base_ref cannot be resolved by git), run the verify_installation tool to diagnose the cause, then report the failing checks and how to fix them. Example: Compare against base_ref="main" for git_repository_path="/repo" and fail the local PR check if any file verdict is "degraded".code_health_refactoring_business_caseGenerate a data-driven business case for refactoring a source file. When to use: Use this tool to justify refactoring investment with quantified predictions tied to the file's current Code Health. Limitations: - Estimates are model-based projections, not guarantees. - Evaluates one file at a time. - Requires an analyzable source file. Returns: A JSON object with: - scenario: Recommended target Code Health level. - optimistic_outcome: Upper bound estimate for improvements in development speed and defect reduction. - pessimistic_outcome: Lower bound estimate for improvements. - confidence_interval: The optimistic to pessimistic range, representing a 90% confidence interval for the expected impact. On failure: If this tool returns an error (e.g., the CLI cannot run, or the file cannot be analyzed), run the verify_installation tool to diagnose the cause, then report the failing checks and how to fix them. Example: Call with file_path="/repo/src/service.py" and use the optimistic and pessimistic outcomes to frame a refactoring proposal.code_health_reviewReview the Code Health of a single source file and return a detailed CLI review output that includes the score and code smell findings. When to use: Use this tool when you need actionable maintainability diagnostics for one file (not just the score). Limitations: - Analyzes one file at a time. - Requires a supported source file. - Returns CLI review text, not a normalized JSON schema. Returns: A review string from the CodeScene CLI. The output typically includes a Code Health score and code smell details to explain why the score is high or low. The Code Health scores are interpreted as: * Optimal Code: a Code Health 10.0 is optimized for both human and AI comprehension * Green Code: high quality with a score of 9.0-9.9 * Yellow Code: problematic technical debt with a score of 4.0-8.9 * Red Code: severe technical debt, maintainability issues, and expensive onboarding with a score of 1.0-3.9 Setup hints: If the result contains `codescene_setup_hint`, do not mention that field. Follow its `message`: briefly explain the benefit, ask permission to add the suggested repository instructions, and wait before editing files. On failure: If this tool returns an error (e.g., the CLI cannot run, or Code Health cannot be computed), run the verify_installation tool to diagnose the cause, then report the failing checks and how to fix them. Example: Call with file_path="/repo/src/app.py" and summarize the returned smells into prioritized refactoring actions.code_health_scoreCalculate the Code Health score for a single source file. The tool returns one numeric score from 10.0 (optimal) to 1.0 (worst). When to use: Use this tool for quick triage, ranking files by maintainability, or checking whether a refactoring improved file-level quality. Limitations: - Analyzes one file at a time. - Returns only the score summary, not the full smell breakdown. - Requires a supported source file. Returns: A string in the format "Code Health score: <score>". The Code Health scores are interpreted as: * Optimal Code: Code Health 10.0 optimized for human and AI comprehension * Green Code: high quality with a score of 9.0-9.9 * Yellow Code: problematic technical debt with a score of 4.0-8.9 * Red Code: severe technical debt with a score of 1.0-3.9 On failure: If this tool returns an error (e.g., the CLI cannot run, or the score cannot be computed), run the verify_installation tool to diagnose the cause, then report the failing checks and how to fix them. Example: Call with file_path="/repo/src/module.py" and compare the score before and after a refactoring.code_ownership_for_pathFind the owner or owners of a specific path in a project. When to use: Use this tool to identify likely reviewers or domain experts for code reviews and technical questions about a file or directory. Limitations: - Requires a valid project_id. - Uses the latest project analysis data available in CodeScene. - If no matching ownership data is found, an empty JSON array is returned. Returns: A list of owners and their paths that they own. The name of the owner who can be responsible for code reviews or inquiries about the file and a link to the CodeScene System Map page filtered by the owner. Explain that this link can be used to see more details about the owner's contributions and interactions within the project. You MUST always show a link after every owner. Show resulting data in a Markdown table with columns: Owner, Key Areas, Link. On failure: If this tool returns an error (e.g., the CodeScene API cannot be reached, or the access token is missing/invalid), run the verify_installation tool to diagnose the cause, then report the failing checks and how to fix them. Example: Call with project_id=42 and path="/repo/src/service.py", then present each owner row with its corresponding system-map link.download_skillDownload a single skill to a local directory. When to use: Use this tool to install a specific skill into your local skills directory (e.g., ~/.claude/skills/). Limitations: - By default, refuses to overwrite existing skills. - Set overwrite=true to replace an existing skill. - Creates the destination directory if it does not exist. Returns: A confirmation message with the path where the skill was written. Example: Call with skill_name="safeguarding-ai-generated-code" and destination_dir="~/.claude/skills" to install the skill.explain_code_healthExplains CodeScene's Code Health metric for assessing code quality and maintainability for both human devs and AI. When to use: Use this tool when a user asks what Code Health means, how scores are interpreted, or why Code Health matters in day-to-day development. Limitations: - Returns static documentation text from this MCP server package. - Does not analyze a specific repository or file. Returns: Markdown content explaining the Code Health model and core concepts. Example: Call this tool, then summarize the returned Markdown into a short explanation tailored to the user's current question.explain_code_health_productivityDescribes how to build a business case for Code Health improvements. Covers empirical data on how healthy code lets you ship faster with fewer defects. When to use: Use this tool when a user asks for ROI, productivity impact, or management-facing framing for refactoring investments. Limitations: - Returns static documentation text from this MCP server package. - Does not compute project-specific forecasts. Returns: Markdown content describing productivity and defect-risk implications of improving Code Health. Example: Call this tool and extract 2-3 evidence-based points to support a proposal for incremental refactoring.get_configRead current CodeScene MCP Server configuration values. When to use: Use this tool to discover available configuration keys, inspect effective values, and understand where each value comes from. Limitations: - Returns JSON text only; callers must format it for display. - Sensitive values (tokens) are masked. - Effective values can be overridden by client-provided env vars. When called without a key, lists every available configuration option together with its current effective value, the source of that value (environment variable vs. config file), and a short description. When called with a specific key, returns details for that option only. Sensitive values (tokens) are masked in the output. Returns: A JSON string. When querying a single key, the object has: key, env_var, value, source, description, aliases, and docs_url. When listing all, the object has: config_dir and options (array of the same shape). Use the aliases array to match user intent to the correct key. Present the data clearly and always include docs_url links. Example: Call with key="access_token" to inspect one setting, or call without key to list all configurable options.get_skill_manifestGet the file manifest for a specific skill. When to use: Use this tool to inspect what files a skill contains, their sizes, and SHA256 hashes before downloading. Limitations: - Requires a valid skill name from list_skills. Returns: A JSON manifest with the skill name and an array of files, each with path, size in bytes, and sha256 hash. Example: Call with skill_name="safeguarding-ai-generated-code" to see the manifest, then use download_skill to install it.list_skillsList all available skills embedded in this MCP server. When to use: Use this tool to discover what skills are available for download or inspection. Limitations: - Returns only skills embedded at compile time. - Does not scan external skill directories. Returns: A formatted list of skill names with their descriptions. Example: Call this tool to see all available skills, then use download_skill or sync_skills to install them locally.list_technical_debt_goals_for_projectLists the technical debt goals for a project. When to use: Use this tool to see all files in a project that currently have explicit technical debt goals in CodeScene. Limitations: - Requires a valid project_id. - Returns goal data from the latest available analysis. - Includes only files with non-empty goals. Returns: A JSON object with two fields: - `data`: an array of objects each containing the path of a file and its goals. - `link`: a URL to the CodeScene Code Biomarkers page for the project. Show the goals for each file in a structured format that is easy to read and explain the goal description for each file. It also includes a description, please include that in your output. Always include the `link` in the output and explain that more details about the technical debt goals can be found on that page. On failure: If this tool returns an error (e.g., the CodeScene API cannot be reached, or the access token is missing/invalid), run the verify_installation tool to diagnose the cause, then report the failing checks and how to fix them. Example: Call with project_id=42 and summarize each file's goals with the biomarkers link for deeper inspection.- +16 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
MCP Sam Gov
{
"mcpServers": {
"mcp-sam-gov": {
"command": "npx",
"args": [
"-y",
"@cliwant/mcp-sam-gov"
]
}
}
}
Codescene MCP Server
{
"mcpServers": {
"codescene-mcp-server": {
"command": "npx",
"args": [
"-y",
"@codescene/codehealth-mcp"
]
}
}
}
Frequently asked questions
MCP Sam Gov is categorized under Developer Tools and uses a local stdio subprocess. Codescene MCP Server belongs to Developer Tools and uses a local stdio subprocess. Pick MCP Sam Gov for developer tools work and Codescene MCP Server for developer tools.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
MCP Sam Gov has no declared pricing — check the project's own site. Codescene MCP Server has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add mcp-sam-gov and codescene-mcp-server as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, MCP Sam Gov has a quality signal of 64/100 (Good) with 0 views, 0 installs and 13 GitHub stars. Codescene MCP Server has 65/100 (Great) with 3 views, 0 installs and 72 GitHub stars.