| # apache-projects-mcp |
| |
| An MCP server for querying Apache Software Foundation project data from [`projects.apache.org/json`](https://projects.apache.org/json/). |
| |
| This server provides a simple way for MCP clients to explore ASF committees, people, podlings, releases, LDAP groups, and repositories using data published by the ASF. |
| |
| ## Features |
| |
| The server currently provides tools to: |
| |
| - list and search Apache project committees |
| - get detailed committee information |
| - search for ASF committers and members |
| - get details about a specific person by Apache ID |
| - list current Incubator podlings |
| - get release history for a project |
| - list members of an ASF LDAP group |
| - find source code repositories for a project |
| - search across Apache top-level projects and podlings |
| - return ASF-wide summary statistics |
| |
| ## Data sources |
| |
| All data is fetched from `https://projects.apache.org/json/foundation/` and cached in memory for 6 hours. |
| |
| | File | Description | |
| |------|-------------| |
| | committees.json | Top-level project committees, including roster, chair, charter, and homepage | |
| | people.json | ASF committers and member status | |
| | people_name.json | Apache ID to full name mapping | |
| | groups.json | LDAP groups, including committer and PMC memberships | |
| | podlings.json | Current Apache Incubator podlings | |
| | releases.json | Project release history | |
| | repositories.json | Source code repository URLs | |
| |
| ## Available tools |
| |
| | Tool | Description | |
| |------|-------------| |
| | list_committees | Browse or search project committees by name or keyword | |
| | get_committee | Get full PMC details, including roster, charter, and homepage | |
| | search_people | Search for ASF committers and members by Apache ID or name | |
| | get_person | Get details for a specific ASF person, including groups and PMC memberships | |
| | list_podlings | List current incubating projects | |
| | get_releases | Get release history for a project | |
| | get_group_members | List members of an ASF LDAP group | |
| | get_repositories | Find repositories for a project | |
| | search_projects | Search across top-level projects and podlings | |
| | project_stats | Return ASF-wide summary statistics | |
| |
| ## Requirements |
| |
| - Node.js 20 or later |
| - An MCP-compatible client |
| |
| ## Installation |
| |
| Clone the repository and install dependencies: |
| |
| ``` |
| git clone https://github.com/apache/comdev.git |
| cd comdev/mcp/apache-projects-mcp |
| npm install |
| ``` |
| |
| ## Running the server |
| |
| Run the server over stdio: |
| |
| ``` |
| npm start |
| ``` |
| |
| You can also run it directly: |
| |
| ``` |
| node index.js |
| ``` |
| |
| ## Example MCP client configuration |
| |
| Example stdio configuration: |
| |
| ``` |
| { |
| "command": "node", |
| "args": ["/path/to/comdev/mcp/apache-projects-mcp/index.js"] |
| } |
| ``` |
| |
| Adjust the path to match your local checkout. |
| |
| ## Example questions |
| |
| Once configured in an MCP client, you can ask things like: |
| |
| - “List projects related to data or storage” |
| - “Show me the PMC roster for Iceberg” |
| - “Find ASF committers named Justin” |
| - “What releases has Apache Spark had recently?” |
| - “Which repositories match Kafka?” |
| - “Search Apache projects related to security” |
| |
| ## Notes and limitations |
| |
| - Data comes from `projects.apache.org/json`, not directly from Git repositories, mailing lists, or podling status reports. |
| - Podling data is limited to the current contents of `podlings.json`. |
| - Data is cached for 6 hours in memory, so updates on the source side may not appear immediately. |