Skip to main content
Glama
bestpractices-mcp

bestpractices-mcp

by reponomics

Best Practices MCP

Description

Best Practices MCP lets an MCP-compatible assistant look up projects on the OpenSSF Best Practices Badge website (BadgeApp), inspect badge criteria and progress, prepare draft answers, and generate proposed updates for review in the browser.

The server provides the tools; your assistant decides how to assess the project and organize the work. It can prepare an edit-page URL or a guarded form-fill script, but does not authenticate to BadgeApp or save changes. You review the actual form before deciding to save.

Maintained by Reponomics. This is an independent project, not affiliated with, sponsored by, endorsed by, or an official project of OpenSSF, the Linux Foundation, or the OpenSSF Best Practices Badge project or its contributors.

Related MCP server: repo-doctor

Quickstart

Use an MCP host that supports local stdio servers, with Python 3.11 or newer available. The project you are assessing can use any programming language.

Install uv if needed, then add the following server to your host's MCP configuration. Hosts with a settings form can use the same command and arguments; the configuration file location and surrounding format depend on the host.

{
  "mcpServers": {
    "bestpractices": {
      "command": "uvx",
      "args": ["--from", "best-practices-mcp==0.1.0-beta.1", "bestpractices-mcp"]
    }
  }
}

This lets the host launch an isolated installation from PyPI. Alternatively, install persistently with pipx install 'best-practices-mcp==0.1.0-beta.1' and configure the host to launch the installed bestpractices-mcp executable with no arguments.

Use an absolute executable path if the host cannot find uvx or bestpractices-mcp on its PATH. On Windows, JSON paths need escaped backslashes, for example C:\Users\you must be written as "C:\\Users\\you". The package name is best-practices-mcp; the executable name is bestpractices-mcp.

Reload the host's MCP connections, then try a request such as:

Find the BadgeApp project for https://github.com/reponomics/PolicyChecks and show its silver-level progress. Do not prepare any changes yet.

The host should discover nine tools. Starting the executable directly in a terminal waits for MCP messages; it is not an interactive CLI. For a source checkout or connection debugging with Inspector, see Contributing.

Tools

Tool

What it does

Network or storage effects

find_project

Find public project candidates by ID, repository/homepage URL, or text; the host selects the intended project.

Public BadgeApp GETs

get_criteria

Read the bundled criteria by badge level and criterion.

Offline

get_project_progress

Read a project's saved answers and progress, with source and fetch time.

Public BadgeApp GETs

build_draft

Create or patch a document supplied by the host.

Offline; no stored files changed

read_draft

Read the complete locally stored draft for a project.

Local read

update_draft

Create or patch a locally stored project draft.

Local write; no BadgeApp update

validate_draft

Check supplied answers against the bundled criteria's mechanical requirements.

Offline; may read a stored draft

prepare_update_url

Generate a proposed edit-page URL and report included/excluded fields.

Public BadgeApp GETs; no remote write

prepare_update_script

Generate a guarded browser form-fill script and report included/excluded fields.

Public BadgeApp GETs; does not execute the script

See the tool specification and payload contracts for arguments, results and errors.

Usage notes

  • Compatibility: Python 3.11 is the supported minimum. The CI compatibility matrix targets Python 3.11/3.12 on Linux, macOS and Windows. The protocol baseline is MCP 2026-07-28; transport is stdio. Node and Ruby are not required to run the server.

  • Catalog and language: criteria are bundled from a pinned upstream revision, not fetched live. The current catalog is English and generated edit links use English paths. Translation support is proposed.

  • Validation is advisory: it checks mechanical requirements, not whether claims are true or evidence is sufficient. Validation is optional and does not gate artifact generation.

  • Review in the browser: artifacts include eligible supplied fields even when they match saved values. Reports describe what was included or excluded, not what BadgeApp will retain or save. BadgeApp documents trimming leading/trailing whitespace from URL-proposed justifications. See transfer rules for overrides and script behavior.

  • Authentication stays in your browser: public reads need no BadgeApp credentials. Applying proposals requires your own authenticated session and appropriate project permissions. The console script is a project-provided fallback, not an upstream-supported API.

Optional draft storage

A host can keep drafts itself and pass them explicitly, or use one server-stored .bestpractices.json per project across badge levels. For validation and artifact generation, an explicit document, including {}, bypasses storage; omitting it reads the selected project's stored draft. Only update_draft writes files.

Default storage locations are:

Platform

Data directory

macOS

~/Library/Application Support/bestpractices-mcp

Linux

$XDG_DATA_HOME/bestpractices-mcp when XDG is absolute; otherwise ~/.local/share/bestpractices-mcp

Windows

%LOCALAPPDATA%/bestpractices-mcp

To choose another location, set BESTPRACTICES_DATA_DIR in the server's environment through your MCP host. Use an absolute path; ~ is not expanded. Avoid simultaneous writers from separate server processes or external editors to the same project draft. After an uncertain update result, use read_draft before deciding whether to issue another patch. See persistence boundaries.

Documentation

License

Original project code is copyright Reponomics and licensed under the MIT License. Bundled upstream material has its own license and attribution requirements; see Third-party notices. References to BadgeApp, OpenSSF and the Linux Foundation describe compatibility and attribution, not endorsement.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      An MCP server that enables coding agents to safely verify npm/PyPI packages, retrieve cited briefs, discover GitHub repos, and fetch canonical docs, with fail-closed OSV vulnerability checks and injection-hardened output.
      213 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server that produces scored, evidence-cited audits of public GitHub repos via tools for fetching metadata, reading files, scanning git history, and checking hygiene.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      MCP server that helps coding agents research and prepare GitHub contributions by gathering repository guidance, related work, code context, and validation evidence into a local SQLite corpus, without ever writing to GitHub.
      100 npm
      33
      MIT