MCP Server Data Updater
This project is a Python script that fetches and parses MCP (Model Context Protocol) server data from the Awesome MCP Servers repository. The script extracts server details such as name, GitHub link, description, and category, and saves the data in a JSON file (mcp_servers.json
).
Features
- Automated Data Fetching : The script fetches the latest MCP server data from the
README.md
file of the Awesome MCP Servers repository.
- JSON Output : The parsed data is saved in a structured JSON format for easy integration with other tools or applications.
- Scheduled Updates : A GitHub Workflow is included to run the script every 8 hours and automatically commit the updated JSON file to the repository.
Usage
Prerequisites
- Python 3.9 or higher
requests
library (install via pip install requests
)
Running the Script Locally
Clone the repository:
git clone https://github.com/shiquda/awesome-mcp-server-index.git
cd awesome-mcp-server-index
Run the script:
uv sync
uv run main.py
- The output will be saved in
mcp_servers.json
.
GitHub Workflow
The included GitHub Workflow (mcp_index_update.yml
) runs the script every 8 hours and automatically commits the updated JSON file to the repository. To enable this:
- Ensure the workflow file is placed in
.github/workflows/mcp_index_update.yml
.
- Push the changes to your repository.
The workflow will trigger automatically based on the schedule or can be manually triggered from the GitHub Actions page.
Output Example
The mcp_servers.json
file contains an array of MCP server objects, each with the following structure:
{
"category": {
"Browser Automation": {
"category_icon": "📂",
"servers": [
{
"name": "@blackwhite084/playwright-plus-python-mcp",
"github_url": "https://github.com/blackwhite084/playwright-plus-python-mcp",
"description": "An MCP python server using Playwright for browser automation, more suitable for LLM"
}
]
},
}
}
## Contributing
Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.