{"id":48549977,"url":"https://github.com/aziontech/mcp-server","last_synced_at":"2026-04-08T08:03:39.889Z","repository":{"id":340853520,"uuid":"1160994390","full_name":"aziontech/mcp-server","owner":"aziontech","description":"Azion MCP Server","archived":false,"fork":false,"pushed_at":"2026-03-20T12:38:33.000Z","size":653,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-21T05:05:00.628Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aziontech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-18T16:02:24.000Z","updated_at":"2026-03-20T12:37:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/aziontech/mcp-server","commit_stats":null,"previous_names":["aziontech/mcp-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aziontech/mcp-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aziontech%2Fmcp-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aziontech%2Fmcp-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aziontech%2Fmcp-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aziontech%2Fmcp-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aziontech","download_url":"https://codeload.github.com/aziontech/mcp-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aziontech%2Fmcp-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31545909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"online","status_checked_at":"2026-04-08T02:00:06.127Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2026-04-08T08:03:17.956Z","updated_at":"2026-04-08T08:03:39.881Z","avatar_url":"https://github.com/aziontech.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Azion MCP Server\n\nA Model Context Protocol (MCP) server for Azion Copilot and AI assistants like Claude Code to access information about Azion Platform capabilities, helping developers with deployment, configuration, and management tasks.\n\n## Features\n\nThis MCP server provides:\n\n- **Resources**: Access information about Azion Platform and how to execute tasks\n- **Tools**: Programmatic access to Azion service information\n- **Authentication**: Personal Token for general access and Fast Pass for Azion Copilot integration\n- **API Profile Support**: Users with v3 profile receive v3-specific responses and tools\n\n## Environments\n\nChoose the appropriate environment based on your needs:\n\n- **Production**: `https://mcp.azion.com` (production console, main branch)\n- **Stage**: `https://stage-mcp.azion.com` (stage console, dev branch)\n- **Local Development**: `http://localhost:3333` (running `azion dev` locally)\n- **Personal Deploy**: Your personal Azion URL after deploying with `azion deploy --config-dir azion/personal`\n\n## Installation\n\n### Prerequisites\n\n- Node.js 20+\n- Yarn package manager\n- Azion CLI installed: [how to download](https://www.azion.com/en/documentation/products/azion-cli/overview/)\n- Git\n\n### Setup\n\n1. Clone the repository\n```bash\ngit clone https://github.com/aziontech/mcp-server.git\ncd mcp-server\n```\n\n2. Install dependencies\n```bash\nyarn install\n```\n\n3. Build the server\n```bash\nazion build\n```\n\n## Configuration\n\n### Environment Variables\n\nCopy the sample environment file and fill in your values:\n```bash\ncp .env.sample .env\n```\n\nThe following environment variables are available:\n\n#### Environment\n| Variable | Description | Required |\n|---|---|---|\n| `NODE_ENV` | Runtime environment (`production`, `development`) | No |\n| `DEBUG` | Enable debug logging (`true`, `false`) | No |\n\n#### Database\n| Variable | Description | Required |\n|---|---|---|\n| `DATABASE_NAME` | Database name for local development | No |\n\n#### MCP Server Configuration\n| Variable | Description | Required |\n|---|---|---|\n| `MCP_COPILOT_SERVER_TOKEN` | Fast pass authentication token for Azion Copilot integration | No |\n| `MCP_BASE_URL` | Base URL for the MCP server | No |\n\n#### API Tokens\n| Variable | Description | Required |\n|---|---|---|\n| `AZION_TOKEN` | Azion API personal token ([create one here](https://console.azion.com/personal-tokens)) | Yes |\n| `OPENAI_API_KEY` | OpenAI API key for AI features | Yes (local/personal) |\n\n#### Azion Configuration\n| Variable | Description | Required |\n|---|---|---|\n| `API_ORIGIN_URL` | Internal API origin base URL (avoids CDN loop) | No |\n| `SSO_ORIGIN_URL` | Internal SSO origin URL | No |\n\n#### Edge AI Configuration\n| Variable | Description | Required |\n|---|---|---|\n| `EDGE_AI_URL` | Edge AI service endpoint URL | No |\n| `EDGE_AI_TOKEN` | Token for Edge AI service | No |\n\n### Azion CLI Configuration (v4)\n\nThe project uses Azion's v4 configuration format in [`azion.config.ts`](azion.config.ts). The configuration includes:\n\n- **Build**: TypeScript preset with polyfills enabled\n- **Functions**: Edge Functions with path mapping\n- **Applications**: Rules Engine configuration with request criteria and behaviors\n- **Workloads**: Deployment strategy configuration\n\nThen link and deploy:\n```bash\n# Link your project\nazion link\n\n# Build the project\nazion build \n\n# Deploy to Azion Platform\nazion deploy\n```\n\nFor more configuration options, visit: https://github.com/aziontech/lib/tree/main/packages/config\n\n## Usage\n\n### Running the Server\n\n```bash\n# Development mode (server available at http://localhost:3333)\nazion dev --debug\n\n# Deploy to Azion Platform\nazion deploy\n```\n\n### Testing Connection\n\n#### Using cURL\n\nThe MCP server uses JSON-RPC 2.0 protocol over HTTP with Streamable HTTP transport. You can test it directly with cURL:\n\n\u003e **Note:** The `Accept` header must include both `application/json` and `text/event-stream` as the server uses Streamable HTTP transport.\n\n**Initialize the connection:**\n```bash\ncurl -X POST https://mcp.azion.com \\\n  -H \"Authorization: Bearer YOUR_PERSONAL_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json, text/event-stream\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"id\": 1,\n    \"method\": \"initialize\",\n    \"params\": {\n      \"protocolVersion\": \"2024-11-05\",\n      \"capabilities\": {},\n      \"clientInfo\": {\n        \"name\": \"curl-client\",\n        \"version\": \"1.0.0\"\n      }\n    }\n  }'\n```\n\n**List available tools:**\n```bash\ncurl -X POST https://mcp.azion.com \\\n  -H \"Authorization: Bearer YOUR_PERSONAL_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json, text/event-stream\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"id\": 2,\n    \"method\": \"tools/list\"\n  }'\n```\n\n**Call a tool - Search CLI commands:**\n```bash\ncurl -X POST https://mcp.azion.com \\\n  -H \"Authorization: Bearer YOUR_PERSONAL_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json, text/event-stream\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"id\": 3,\n    \"method\": \"tools/call\",\n    \"params\": {\n      \"name\": \"search_azion_cli_commands\",\n      \"arguments\": {\n        \"query\": \"how to deploy an edge application\",\n        \"docsAmount\": 3\n      }\n    }\n  }'\n```\n\n**Call a tool - Search documentation:**\n```bash\ncurl -X POST https://mcp.azion.com \\\n  -H \"Authorization: Bearer YOUR_PERSONAL_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json, text/event-stream\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"id\": 4,\n    \"method\": \"tools/call\",\n    \"params\": {\n      \"name\": \"search_azion_docs_and_site\",\n      \"arguments\": {\n        \"query\": \"edge functions basics\",\n        \"docsAmount\": 5\n      }\n    }\n  }'\n```\n\n**Call a tool - Search code samples:**\n```bash\ncurl -X POST https://mcp.azion.com \\\n  -H \"Authorization: Bearer YOUR_PERSONAL_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json, text/event-stream\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"id\": 5,\n    \"method\": \"tools/call\",\n    \"params\": {\n      \"name\": \"search_azion_code_samples\",\n      \"arguments\": {\n        \"query\": \"storage javascript typescript\",\n        \"docsAmount\": 3\n      }\n    }\n  }'\n```\n\n#### MCP Inspector\nUse [MCP Inspector](https://github.com/modelcontextprotocol/inspector) to validate your connection:\n\n```bash\nnpx @modelcontextprotocol/inspector\n```\n\nIn the Inspector interface:\n1. Select \"streamable-http\" as transport type\n2. Enter the URL: `https://mcp.azion.com` (or your environment URL)\n3. Add authentication header: `Authorization: Bearer YOUR_PERSONAL_TOKEN`\n4. Connect and test available tools\n\n### Client Configuration\n\nSee [AGENTS.md](AGENTS.md) for detailed configuration instructions for:\n- Claude Code (Terminal)\n- Claude Desktop\n- Cursor\n- Windsurf\n- Warp Terminal\n- VS Code with GitHub Copilot\n- Kiro Code\n- OpenCode\n\n## Available Tools\n\n- `search_azion_docs_and_site` — Provides information about Azion Platform, products, and services\n- `search_azion_code_samples` — Retrieves code libraries and samples from Azion's knowledge base\n- `search_azion_cli_commands` — Provides information about Azion CLI commands and usage\n- `search_azion_api_v3_commands` — Provides information about Azion API v3 (previous version)\n- `search_azion_api_v4_commands` — Provides information about Azion API v4 (current version)\n- `search_azion_terraform` — Retrieves documents from Azion's Terraform provider\n- `create_rules_engine` — Searches documentation and helps create Rules Engine configurations\n- `create_graphql_query` — Searches documentation and generates GraphQL queries based on goals\n- `deploy_azion_static_site` — Provides guides for deploying and testing static sites\n\n## Available Resources\n\nFor clients supporting MCP resources:\n- `azion://static-site/deploy/*` — Step-by-step deployment guides\n- `azion://static-site/test-cache/*` — Cache testing workflows\n\n## Development\n\n### Project Structure\n\n```\nindex.ts                     # Application entry point (calls app.fire())\nsrc/\n├── app.ts                 # Main application (exported as default)\n├── config/\n│   └── environment.ts       # Environment configuration and defaults\n├── core/\n│   ├── baseTools.ts         # Base tool definitions\n│   ├── tools.ts             # Tool definitions and handlers\n│   ├── server.ts            # MCP server setup\n│   ├── edgeai.ts            # Edge AI integration\n│   ├── resources.ts         # Resource definitions\n│   └── coderStaticSiteResources.ts  # Static site deployment resources\n├── helpers/\n│   ├── constants.ts         # Application constants\n│   ├── graphql.ts           # GraphQL query helpers\n│   ├── logger.ts            # Logging with sanitization\n│   ├── rulesEngineSchema.ts # Rules Engine schema definitions\n│   ├── sanitization.ts      # Input sanitization utilities\n│   └── utils.ts             # General helper functions\n├── middlewares/\n│   └── auth.ts              # Authentication middleware\n└── types/\n    └── index.ts             # TypeScript type definitions\n```\n\n### Security\n\nThe MCP server includes specific security measures:\n\n- **Input Sanitization**: All user inputs are sanitized to prevent injection attacks\n- **Log Sanitization**: Tokens and sensitive fields are masked in logs\n- **Timing-Safe Comparison**: Auth token comparison prevents timing attacks\n- **ESLint Security Rules** ([`.eslintrc.security.json`](.eslintrc.security.json)): Custom security linting for MCP-specific patterns\n- **Pre-commit Hooks** ([`.husky/pre-commit`](.husky/pre-commit)): Automated security checks before commits\n- **Authentication Validation**: Multiple auth methods with proper validation\n\nRun security checks locally:\n```bash\n# Run MCP-specific security linting\nyarn lint\n\n# Run type checking\nyarn type-check\n```\n\n### Extending the Server\n\nTo add new Azion functionality:\n\n1. Add new resources in [`src/core/resources.ts`](src/core/resources.ts)\n2. Add new tools in [`src/core/tools.ts`](src/core/tools.ts)\n3. Update types in [`src/types/index.ts`](src/types/index.ts)\n\n## Examples\n\n### Deploy a Next.js application\n```\n\"Help me deploy my Next.js application to Azion\"\n```\n\n### Create analytics query\n```\n\"Create a GraphQL query to show traffic by application for the last 7 days\"\n```\n\n### Configure caching rules\n```\n\"Create Rules Engine configuration for image optimization and caching\"\n```\n\n### Search documentation\n```\n\"How do I configure DDoS protection in Azion?\"\n```\n\n## Support\n\n- Documentation: https://docs.azion.com\n- GitHub: https://github.com/aziontech/mcp-server\n- Create Personal Token: https://console.azion.com/personal-tokens\n\n## License\n\nMIT\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faziontech%2Fmcp-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faziontech%2Fmcp-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faziontech%2Fmcp-server/lists"}