justinmclean

ASF Policy MCP

Community justinmclean
Updated

MCP server for answering questions about Apache Software Foundation policies

ASF Policy MCP

MCP server for answering questions about Apache Software Foundation policies.

Covers the full set of policies listed at https://www.apache.org/board/policies — releases, licensing, branding, security, infrastructure, incubator, and more.

Policy pages are cached locally for 30 days. Use force_refresh=true on read tools to bypass the cache for a single call.

Install

python3 -m venv .venv
. .venv/bin/activate
pip install -e .

Run

asf-policy-mcp

For local development:

python -m asf_policy_mcp.server

Test

pip install -e ".[dev]"
make check

Configure with Claude Desktop or Codex

{
  "mcpServers": {
    "asf-policy": {
      "command": "<path to PolicyMCP>/.venv/bin/python",
      "args": ["-m", "asf_policy_mcp.server"]
    }
  }
}

Tools

  • list_policies — list all available policy documents organised by section, with cache status.
  • get_policy — retrieve the full text of a policy document by key (e.g. release_policy, branding, incubator).
  • search_policies — keyword search across all policy documents, returning ranked excerpts with context.
  • refresh_cache — force re-fetch of one or all policy documents from the ASF website.

Example questions

Releases

  • What files must be included in a release artifact for it to be valid?
  • Can we ship a release with only one +1 vote from the PMC?
  • Where must release artifacts be published — can we use GitHub Releases as the primary download?

Incubator

  • What does a podling need to do before it can graduate?
  • Can a podling cut a release before graduating, and what extra requirements apply?
  • Who can vote on a podling release, and whose votes are binding?

Licensing

  • Is the MIT licence compatible with Apache 2.0 for bundling in a release?
  • Can we include a library licensed under LGPL 2.1?
  • What is a Category X licence and why does it matter?
  • Do we need a CLA from every contributor, or only committers?
  • What licence headers are required in source files?

Security

  • If someone reports a vulnerability privately, how long before we must disclose?
  • Should security issues be discussed on the public dev list?

Branding

  • Can a company call its commercial product "Apache Foo Enterprise Edition"?
  • Can a third party use "Apache Foo" in the name of their commercial product?
  • What must appear on a project website for trademark compliance?

Infrastructure, press, privacy, and reporting

  • Can a project use an external Git host like GitLab as its primary code repository?
  • Can a project host its website on GitHub Pages?
  • Can a company issue a press release announcing new features they've added support for in an Apache project?
  • Are Apache mailing list archives public, and what does that mean for personal data posted to them?
  • If a PMC discovers a company misusing their project's trademark, who handles it and what should they do first?
  • Can a project list corporate affiliations next to committer names on a "Who We Are" page?
  • What fields are required in every PMC board report?

Apache Foo scenarios

  • Apache Foo wants to publish container images, nightly builds, and release candidates from the same Docker Hub namespace. Which parts are allowed, and what labels or warnings are needed?
  • ExampleCo donated most of Apache Foo's original code and still employs most committers. What website, branding, and project independence issues should the PMC watch for?
  • A security researcher privately reports a vulnerability in Apache Foo, but a downstream vendor wants to publish a fix immediately. How should the PMC coordinate disclosure, release voting, and public communication?
  • Apache Foo wants to accept a large generated code contribution produced with AI tooling and containing third-party snippets. Which licensing, provenance, and source-header checks apply?
  • The Apache Foo PMC wants to run an in-person "FooCon" with paid sponsors, project swag, and talks by vendors. Which event branding, merchandise, press, and conduct policies apply?
  • A former Apache Foo committer asks for their name and email to be removed from old mailing list archives and Git commits. What do the privacy, public archive, and repository policies imply?
  • Apache Foo has not released in two years, has no recent PMC additions, and depends on infrastructure that Infra wants to retire. What should the next board report include?

Policy documents

Key Title Section
pmc PMC Guide Community And Project Oversight
code_of_conduct Code of Conduct Community And Project Oversight
anti_harassment Anti-Harassment Policy Community And Project Oversight
public_archives Public Forum Archive Policy Community And Project Oversight
project_independence Project Independence Independence
board_reporting Board Reporting Requirements Reporting
release_policy Release Policy Release
voting Apache Voting Process Release
release_distribution Release Distribution Policy Release
docker_hub Docker Hub Policy Release
release_download_pages Release Download Pages Policy Release
nightlies Project Use of nightlies.apache.org Release
security Security Team Guidance Security
security_committers Vulnerability Handling for Committers Security
licenses Contributor License Agreements Licensing
apply_license Applying the Apache License, Version 2.0 Licensing
cla_faq CLA FAQ Licensing
source_headers Apache Source Headers Licensing
resolved_licenses Approved/Resolved Third-Party Licenses Licensing
crypto_policy Handling Cryptography within an ASF Release Licensing
generative_tooling Generative Tooling Guidance Licensing
branding Project Branding Requirements Branding
trademark_maintenance Trademark Maintenance Responsibilities Branding
website_linking Website Linking Policy Branding
event_branding Third-Party Event Branding Policy Branding
merchandise_branding Non-Software Merchandise Branding Policy Branding
domain_name_branding Domain Name Branding Policy Branding
downstream_distribution Apache Software Downstream Distribution Policy Branding
podling_branding Incubator Podling Branding Guide Branding
event_code_of_conduct Event Code of Conduct Events
trademark_policy ASF Trademark Policy Branding
repo_policy Repository Policy Infrastructure
infra_site_ban Site-Wide Ban Infrastructure
committer_outreach Outreach to Committers Infrastructure
content_moderation Content Moderation Infrastructure
mail_rejection Mail Rejection Policy Infrastructure
spam_reporting Dealing with Spam in Your ASF Email Account Infrastructure
password_policy Password Requirements Infrastructure
third_party_services Policy on Issues in Third-Party Services Infrastructure
slack_policy Policy for Using ASF Slack Infrastructure
sensitive_information Policy on Sharing Sensitive Information with Infra Infrastructure
github_actions GitHub Actions Infrastructure
website_policy Website Policy Infrastructure
content_security_policy Content Security Policy Infrastructure
app_upgrade_policy Application Upgrades Infrastructure
backup_policy Backups Infrastructure
os_upgrade_policy Operating System Upgrades Infrastructure
vm_policy Virtual Machines for Projects Infrastructure
jira_account_approval Approving Jira Account Requests Infrastructure
jira_account_retention Jira Account Retention Policy Infrastructure
press Press & Marketing Policy Press
sponsorship Sponsorship Requirements Fundraising
privacy Privacy Policy Privacy
privacy_contributors Privacy Policy for Contributors Privacy
privacy_committers Privacy Policy for Committers Privacy
privacy_project_websites Privacy Policy for Project Websites Privacy
privacy_downloadable_products_high Privacy Policy for ASF Downloadable Applications (High Privacy Standards) Privacy
privacy_downloadable_products_medium Privacy Policy for Products with Medium Privacy Standards Privacy
privacy_mailing_lists Mailing List Policy Privacy
incubator Incubator Podling Policies Incubator
incubator_ip_clearance Incubator IP Clearance Incubator

MCP Server · Populars

MCP Server · New