{"id":29113309,"url":"https://github.com/sitbon/magg","last_synced_at":"2025-07-18T16:07:38.596Z","repository":{"id":300187278,"uuid":"1005453886","full_name":"sitbon/magg","owner":"sitbon","description":"Magg: The MCP Aggregator","archived":false,"fork":false,"pushed_at":"2025-07-16T08:56:04.000Z","size":1077,"stargazers_count":21,"open_issues_count":0,"forks_count":5,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-17T03:07:37.242Z","etag":null,"topics":["aggregator","ai","docker","docker-compose","fastmcp","json-rpc","llm","mcp","mcp-sdk","mcp-server","mcp-servers","modelcontextprotocol","proxy","pydantic","pydantic-v2","python"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/magg/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sitbon.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-20T08:54:11.000Z","updated_at":"2025-07-16T08:56:07.000Z","dependencies_parsed_at":"2025-06-20T10:19:03.016Z","dependency_job_id":"dc681e88-71d2-407a-ae0c-23008b5cb35a","html_url":"https://github.com/sitbon/magg","commit_stats":null,"previous_names":["sitbon/magg"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/sitbon/magg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitbon%2Fmagg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitbon%2Fmagg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitbon%2Fmagg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitbon%2Fmagg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sitbon","download_url":"https://codeload.github.com/sitbon/magg/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitbon%2Fmagg/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265791724,"owners_count":23829165,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aggregator","ai","docker","docker-compose","fastmcp","json-rpc","llm","mcp","mcp-sdk","mcp-server","mcp-servers","modelcontextprotocol","proxy","pydantic","pydantic-v2","python"],"created_at":"2025-06-29T11:05:26.592Z","updated_at":"2025-07-18T16:07:38.590Z","avatar_url":"https://github.com/sitbon.png","language":"Python","readme":"# 🧲 **Magg** - *The MCP Aggregator*\n\n[//]: # ([![Tests]\u0026#40;https://img.shields.io/github/actions/workflow/status/sitbon/magg/test.yml?style=flat-square\u0026label=tests\u0026#41;]\u0026#40;https://github.com/sitbon/magg/actions/workflows/test.yml\u0026#41;)\n[![Python Version](https://img.shields.io/pypi/pyversions/magg?style=flat-square\u0026logo=python\u0026logoColor=white)](https://pypi.org/project/magg/)\n[![PyPI Version](https://img.shields.io/pypi/v/magg?style=flat-square\u0026logo=pypi\u0026logoColor=white)](https://pypi.org/project/magg/)\n[![GitHub Release](https://img.shields.io/github/v/release/sitbon/magg?style=flat-square\u0026logo=github)](https://github.com/sitbon/magg/releases)\n[![DeepWiki](https://img.shields.io/badge/DeepWiki-sitbon%2Fmagg-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](https://deepwiki.com/sitbon/magg)\n[![Downloads](https://img.shields.io/pypi/dm/magg?style=flat-square)](https://pypistats.org/packages/magg)\n\u003c!-- DeepWiki badge generated by https://deepwiki.ryoppippi.com/ --\u003e\n\n[![Tests](https://github.com/sitbon/magg/actions/workflows/test.yml/badge.svg)](https://github.com/sitbon/magg/actions/workflows/test.yml)\n[![Docker](https://github.com/sitbon/magg/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/sitbon/magg/actions/workflows/docker-publish.yml)\n\nA *[Model Context Protocol](https://modelcontextprotocol.io/)* server that manages, aggregates, and proxies other MCP servers, enabling LLMs to dynamically extend their own capabilities.\n\n## What is Magg?\n\nMagg is a meta-MCP server that acts as a central hub for managing multiple MCP servers. It provides tools that allow LLMs to:\n\n- Search for new MCP servers and discover setup instructions\n- Add and configure MCP servers dynamically\n- Enable/disable servers on demand\n- Aggregate tools from multiple servers under unified prefixes\n- Persist configurations across sessions\n\nThink of Magg as a \"package manager for LLM tools\" - it lets AI assistants install and manage their own capabilities at runtime.\n\n## Features\n\n- **Self-Service Tool Management**: LLMs can search for and add new MCP servers without human intervention.\n- **Dynamic Configuration Reloading**: Automatically detects and applies config changes without restarting.\n- **Automatic Tool Proxying**: Tools from added servers are automatically exposed with configurable prefixes.\n- **ProxyMCP Tool**: A built-in tool that proxies the MCP protocol to itself, for clients that don't support notifications or dynamic tool updates (which is most of them currently).\n- **Smart Configuration**: Uses MCP sampling to intelligently configure servers from just a URL.\n- **Persistent Configuration**: Maintains server configurations in `.magg/config.json`.\n- **Multiple Transport Support**: Works with stdio, HTTP, and in-memory transports.\n- **Bearer Token Authentication**: Optional RSA-based JWT authentication for secure HTTP access.\n- **Docker Support**: Pre-built images for production, staging, and development workflows.\n- **Health Monitoring**: Built-in `magg_status` and `magg_check` tools for server health checks.\n- **Real-time Messaging**: Full support for MCP notifications and messages - receive tool/resource updates and progress notifications from backend servers.\n- **Python 3.12+ Support**: Fully compatible with Python 3.12 and 3.13.\n- **Kit Management**: Bundle related MCP servers into kits for easy loading/unloading as a group.\n- **MBro CLI**: Included [MCP Browser](docs/mbro.md) for interactive exploration and management of MCP servers, with script support for automation.\n\n## Installation\n\n### Prerequisites\n\n- Python 3.12 or higher (3.13+ recommended)\n- `uv` (recommended) - Install from [astral.sh/uv](https://astral.sh/uv)\n\n### Quick Install (Recommended)\n\nThe easiest way to install Magg is as a tool using `uv`:\n\n```bash\n# Install Magg as a tool\nuv tool install magg\n\n# Run with stdio transport (for Claude Desktop, Cline, etc.)\nmagg serve\n\n# Run with HTTP transport (for system-wide access)\nmagg serve --http\n```\n\n### Alternative: Run Directly from GitHub\n\nYou can also run Magg directly from GitHub without installing:\n\n```bash\n# Run with stdio transport\nuvx --from git+https://github.com/sitbon/magg.git magg\n\n# Run with HTTP transport\nuvx --from git+https://github.com/sitbon/magg.git magg serve --http\n```\n\n### Local Development\n\nFor development, clone the repository and install in editable mode:\n\n```bash\n# Clone the repository\ngit clone https://github.com/sitbon/magg.git\ncd magg\n\n# Install in development mode with dev dependencies\nuv sync --dev\n\n# Or with poetry\npoetry install --with dev\n\n# Run the CLI\nmagg --help\n```\n\n### Docker\n\nMagg is available as pre-built Docker images from GitHub Container Registry:\n\n```bash\n# Run production image (WARNING log level)\ndocker run -p 8000:8000 ghcr.io/sitbon/magg:latest\n\n# Run with authentication (mount or set private key)\ndocker run -p 8000:8000 \\\n  -v ~/.ssh/magg:/home/magg/.ssh/magg:ro \\\n  ghcr.io/sitbon/magg:latest\n\n# Or with environment variable\ndocker run -p 8000:8000 \\\n  -e MAGG_PRIVATE_KEY=\"$(cat ~/.ssh/magg/magg.key)\" \\\n  ghcr.io/sitbon/magg:latest\n\n# Run beta image (INFO log level)\ndocker run -p 8000:8000 ghcr.io/sitbon/magg:beta\n\n# Run with custom config directory\ndocker run -p 8000:8000 \\\n  -v /path/to/config:/home/magg/.magg \\\n  ghcr.io/sitbon/magg:latest\n```\n\n#### Docker Image Strategy\n\nMagg uses a multi-stage Docker build with three target stages:\n\n- **`pro` (Production)**: Minimal image with WARNING log level, suitable for production deployments\n- **`pre` (Pre-production)**: Same as production but with INFO log level for staging/testing\n- **`dev` (Development)**: Includes development dependencies and DEBUG logging for troubleshooting\n\nImages are automatically published to GitHub Container Registry with the following tags:\n\n- **Version tags** (from main branch): `latest`, `1.2.3`, `1.2`, `dev`, `1.2-dev`, `1.2-dev-py3.12`, etc.\n- **Branch tags** (from beta branch): `beta`, `beta-pre`, `beta-dev`\n- **Python-specific dev tags**: `beta-dev-py3.12`, `beta-dev-py3.13`, etc.\n\n#### Docker Compose\n\nFor easier management, use Docker Compose:\n\n```bash\n# Clone the repository\ngit clone https://github.com/sitbon/magg.git\ncd magg\n\n# Run production version\ndocker compose up magg\n\n# Run staging version (on port 8001)\ndocker compose up magg-beta\n\n# Run development version (on port 8008)\n# This uses ./.magg/config.json for configuration\ndocker compose up magg-dev\n\n# Build and run with custom registry\nREGISTRY=my.registry.com docker compose build\nREGISTRY=my.registry.com docker compose push\n```\n\nSee `compose.yaml` and `.env.example` for configuration options.\n\n## Usage\n\n### Running Magg\n\nMagg can run in three modes:\n\n1. **Stdio Mode** (default) - For integration with Claude Desktop, Cline, Cursor, etc.:\n   ```bash\n   magg serve\n   ```\n\n2. **HTTP Mode** - For system-wide access or web integrations:\n   ```bash\n   magg serve --http --port 8000\n   ```\n\n3. **Hybrid Mode** - Both stdio and HTTP simultaneously:\n   ```bash\n   magg serve --hybrid\n   magg serve --hybrid --port 8080  # Custom port\n   ```\n   \n   This is particularly useful when you want to use Magg through an MCP client while also allowing HTTP access. For example:\n   \n   **With Claude Code:**\n   ```bash\n   # Configure Claude Code to use Magg in hybrid mode\n   claude mcp add magg -- magg serve --hybrid --port 42000\n   ```\n   \n   **With mbro:**\n   ```bash\n   # mbro hosts Magg and connects via stdio\n   mbro connect magg \"magg serve --hybrid --port 8080\"\n   \n   # Other mbro instances can connect via HTTP\n   mbro connect magg http://localhost:8080\n   ```\n\n### Available Tools\n\nOnce Magg is running, it exposes the following tools to LLMs:\n\n- `magg_list_servers` - List all configured MCP servers\n- `magg_add_server` - Add a new MCP server\n- `magg_remove_server` - Remove a server\n- `magg_enable_server` / `magg_disable_server` - Toggle server availability\n- `magg_search_servers` - Search for MCP servers online\n- `magg_list_tools` - List all available tools from all servers\n- `magg_smart_configure` - Intelligently configure a server from a URL\n- `magg_analyze_servers` - Analyze configured servers and suggest improvements\n- `magg_status` - Get server and tool statistics\n- `magg_check` - Health check servers with repair actions (report/remount/unmount/disable)\n- `magg_reload_config` - Reload configuration from disk and apply changes\n- `magg_load_kit` - Load a kit and its servers into the configuration\n- `magg_unload_kit` - Unload a kit and optionally its servers from the configuration\n- `magg_list_kits` - List all available kits with their status\n- `magg_kit_info` - Get detailed information about a specific kit\n\n### Quick Inspection with MBro\n\nMagg includes the `mbro` (MCP Browser) CLI tool for interactive exploration. A unique feature is the ability to connect to Magg in stdio mode for quick inspection:\n\n```bash\n# Connect mbro to a Magg instance via stdio (no HTTP server needed)\nmbro connect local-magg magg serve\n\n# Now inspect your Magg setup from the MCP client perspective\nmbro:local-magg\u003e call magg_status\nmbro:local-magg\u003e call magg_list_servers\n```\n\nMBro also supports:\n- **Scripts**: Create `.mbro` files with commands for automation\n- **Shell-style arguments**: Use `key=value` syntax instead of JSON\n- **Tab completion**: Rich parameter hints after connecting\n\nSee the [MBro Documentation](docs/mbro.md) for details.\n\n### Authentication\n\nMagg supports optional bearer token authentication to secure access:\n\n#### Quick Start\n\n1. **Initialize authentication** (creates RSA keypair):\n   ```bash\n   magg auth init\n   ```\n\n2. **Generate a JWT token** for clients:\n   ```bash\n   # Generate token (displays on screen)\n   magg auth token\n   \n   # Export as environment variable\n   export MAGG_JWT=$(magg auth token -q)\n   ```\n\n3. **Connect with authentication**:\n   - Using `MaggClient` (auto-loads from MAGG_JWT):\n     ```python\n     from magg.client import MaggClient\n     \n     async def main():\n         async with MaggClient(\"http://localhost:8000/mcp\") as client:\n             tools = await client.list_tools()\n     ```\n   - Using FastMCP with explicit token:\n     ```python\n     from fastmcp import Client\n     from fastmcp.client import BearerAuth\n     \n     jwt_token = \"your-jwt-token-here\"\n     async with Client(\"http://localhost:8000/mcp\", auth=BearerAuth(jwt_token)) as client:\n         tools = await client.list_tools()\n     ```\n\n#### Key Management\n\n- Keys are stored in `~/.ssh/magg/` by default\n- Private key can be set via `MAGG_PRIVATE_KEY` environment variable\n- To disable auth, remove keys or set non-existent `key_path` in `.magg/auth.json`\n\n#### Authentication Commands\n\n- `magg auth init` - Initialize authentication (generates RSA keypair)\n- `magg auth status` - Check authentication configuration\n- `magg auth token` - Generate JWT token\n- `magg auth public-key` - Display public key (for verification)\n- `magg auth private-key` - Display private key (for backup)\n\nSee [examples/authentication.py](examples/authentication.py) for more usage patterns.\n\n### Configuration\n\nMagg stores its configuration in `.magg/config.json` in your current working directory. This allows for project-specific tool configurations.\n\n#### Dynamic Configuration Reloading\n\nMagg supports automatic configuration reloading without requiring a restart:\n\n- **Automatic file watching**: Detects changes to `config.json` and reloads automatically (uses watchdog when available)\n- **SIGHUP signal**: Send `kill -HUP \u003cpid\u003e` to trigger immediate reload (Unix-like systems)\n- **MCP tool**: Use `magg_reload_config` tool from any MCP client\n- **Smart transitions**: Only affected servers are restarted during reload\n\nConfiguration reload is enabled by default. You can control it with:\n- `MAGG_AUTO_RELOAD=false` - Disable automatic reloading\n- `MAGG_RELOAD_POLL_INTERVAL=5.0` - Set polling interval in seconds (when watchdog unavailable)\n\nSee [Configuration Reload Documentation](docs/config-reload.md) for detailed information.\n\n#### Environment Variables\n\nMagg supports several environment variables for configuration:\n- `MAGG_CONFIG_PATH` - Path to config file (default: `.magg/config.json`)\n- `MAGG_LOG_LEVEL` - Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL (default: INFO)\n- `MAGG_STDERR_SHOW=1` - Show stderr output from subprocess MCP servers (default: suppressed)\n- `MAGG_AUTO_RELOAD` - Enable/disable config auto-reload (default: true)\n- `MAGG_RELOAD_POLL_INTERVAL` - Config polling interval in seconds (default: 1.0)\n- `MAGG_READ_ONLY=true` - Run in read-only mode\n- `MAGG_QUIET=true` - Suppress output unless errors occur\n- `MAGG_SELF_PREFIX` - Prefix for Magg tools (default: \"magg\"). Tools will be named as `{prefix}{sep}{tool}` (e.g., `magg_list_servers`)\n- `MAGG_PREFIX_SEP` - Separator between prefix and tool name (default: \"_\")\n\nExample configuration:\n```json\n{\n  \"servers\": {\n    \"calculator\": {\n      \"name\": \"calculator\",\n      \"source\": \"https://github.com/executeautomation/calculator-mcp\",\n      \"command\": \"npx @executeautomation/calculator-mcp\",\n      \"prefix\": \"calc\",\n      \"enabled\": true\n    }\n  }\n}\n```\n\n### Adding Servers\n\nServers can be added in several ways:\n\n1. **Using the LLM** (recommended):\n   ```\n   \"Add the Playwright MCP server\"\n   \"Search for and add a calculator tool\"\n   ```\n\n2. **Manual configuration** via `magg_add_server`:\n   ```\n   name: playwright\n   url: https://github.com/microsoft/playwright-mcp\n   command: npx @playwright/mcp@latest\n   prefix: pw\n   ```\n\n3. **Direct config editing**: Edit `.magg/config.json` directly\n\n### Real-time Notifications with MaggClient\n\nThe `MaggClient` now supports real-time notifications from backend MCP servers:\n\n```python\nfrom magg import MaggClient, MaggMessageHandler\n\n# Using callbacks\nhandler = MaggMessageHandler(\n    on_tool_list_changed=lambda n: print(\"Tools changed!\"),\n    on_progress=lambda n: print(f\"Progress: {n.params.progress}\")\n)\n\nasync with MaggClient(\"http://localhost:8000/mcp\", message_handler=handler) as client:\n    # Client will receive notifications while connected\n    tools = await client.list_tools()\n```\n\nSee [Messaging Documentation](docs/messaging.md) for advanced usage including custom message handlers.\n\n### Kit Management\n\nMagg supports organizing related MCP servers into \"kits\" - bundles that can be loaded and unloaded as a group:\n\n```bash\n# List available kits\nmagg kit list\n\n# Load a kit (adds all its servers)\nmagg kit load web-tools\n\n# Unload a kit (removes servers only in that kit)\nmagg kit unload web-tools\n\n# Get information about a kit\nmagg kit info web-tools\n```\n\nYou can also manage kits programmatically through Magg's tools when connected via an MCP client:\n- `magg_list_kits` - List all available kits\n- `magg_load_kit` - Load a kit and its servers\n- `magg_unload_kit` - Unload a kit\n- `magg_kit_info` - Get detailed kit information\n\nKits are JSON files stored in `~/.magg/kit.d/` or `.magg/kit.d/` that define a collection of related servers. See [Kit Documentation](docs/kits.md) for details on creating and managing kits.\n\n### MBro Scripts\n\nAutomate common workflows with MBro scripts:\n\n```bash\n# Create a setup script\ncat \u003e setup.mbro \u003c\u003cEOF\n# Connect to Magg and check status\nconnect magg magg serve\ncall magg_status\ncall magg_list_servers\n\n# Add a new server if needed\ncall magg_add_server name=calculator source=\"npx -y @modelcontextprotocol/server-calculator\"\nEOF\n\n# Run the script\nmbro -x setup.mbro\n```\n\n## Documentation\n\nFor more documentation, see [docs/](docs/index.md).\n\n## Appearances\n\nMagg appears in multiple locations. Please feel free to submit a PR to add more appearances below in alphabetical order.\n\n### Listing, Index, and other MCP Sites\n\n* [DeepWiki](https://deepwiki.com/sitbon/magg) - AI-generated documentation\n* [Glama.ai](https://glama.ai/mcp/servers/@sitbon/magg) - MCP server listing and hosting\n\n### Awesome GitHub MCP Lists\n\n* [@punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers)\n* [@wong2/awesome-mcp-servers](https://github.com/wong2/awesome-mcp-servers)\n","funding_links":[],"categories":["Aggregators \u0026 Gateways","Mcp Middleware \u0026 Orchestration","Community Servers","پیاده‌سازی‌های سرور","Aggregators","MCP Servers","📦 Other","📚 Projects (2474 total)","📂 카테고리","MCP Servers \u0026 Protocol","Python"],"sub_categories":["Aggregators","🔗 \u003ca name=\"aggregators\"\u003e\u003c/a\u003eتجمیع‌کننده‌ها","How to Submit","🔗 Aggregators \u0026 Meta Servers","MCP Servers","🔗 Aggregators"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsitbon%2Fmagg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsitbon%2Fmagg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsitbon%2Fmagg/lists"}