Avaly-ai-Corp/Avaly-MCP-server
If you are the rightful owner of Avaly-MCP-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
Avaly-MCP-server is a robust server designed to facilitate the implementation and management of Model Context Protocol (MCP) for various applications.

A collection of containerised services that deliver AI-security tooling, a chat-based agent layer, and a Model Context Protocol (MCP). This collection contains an agentic version of TextAttack and Garak which can be executed via the bundled agent. Instructions and examples follow.
Features:
- Model Context Protocol Compliant With The MCP Spec.
- SSE Transport Mechanism
- Agentic Versions Of TextAttack And Garak
- MCP Server Is Fully Extensibe To Add More Tools.
Prerequisites
- Docker 20.10+ and the Docker Compose v2 CLI plugin.
- GPU (optional) if you want CUDA-accelerated TextAttack/Garak runs.
- Ollama running locally for LLM back-end.
Pull the base LLM once:
ollama pull magistral:24b-small-2506-q8_0
Quick Start
# Build & start every service (three terminals or run in detached mode)
docker compose -f mcp-docker-compose.yml up --build -d
docker compose -f toolx-docker-compose.yml up --build -d
docker compose -f agent-docker-compose.yml up --build -d
The stack will be reachable at:
http://localhost:7070/sse– MCP over Server-Sent Eventshttp://localhost:7575– ToolX micro-servicehttp://localhost:5000– Agent REST API
Endpoints
Agent API (service-agent)
| Method | Endpoint | Purpose |
|---|---|---|
| POST | /api/create_session | Create a new chat session |
| POST | /api/run | Send a message / run a command |
Usage Examples
Note: Persist same 'userId' across all requests
# 1. Create a chat session
curl -X POST http://localhost:5000/api/create_session
# 2. Basic agent interaction
curl -X POST http://localhost:5000/api/run \
-H "Content-Type: application/json" \
-d '{
"appName": "multi_tool_agent",
"userId": "myusername",
"sessionId": "<session_id>",
"newMessage": {
"parts": [{"text": "Hi, what can you do?"}],
"role": "user"
},
"streaming": false
}'
# 3. Launch a TextAttack evaluation
curl -X POST http://localhost:5000/api/run \
-H "Content-Type: application/json" \
-d '{
"appName": "multi_tool_agent",
"userId": "myusername",
"sessionId": "<session_id>",
"newMessage": {
"parts": [{"text": "Please run an attack with model distilbert-base-uncased-finetuned-sst-2-english on the setfit/sst2 dataset using the textfooler recipe for 5 examples"}],
"role": "user"
},
"streaming": false
}'
# 4. Launch a Garak probe
curl -X POST http://localhost:5000/api/run \
-H "Content-Type: application/json" \
-d '{
"appName": "multi_tool_agent",
"userId": "myusername",
"sessionId": "<session_id>",
"newMessage": {
"parts": [{"text": "Please run a scan with model gpt2 and probe xss"}],
"role": "user"
},
"streaming": false
}'
Sample Output

Architecture
| Service | Description | Port |
|---|---|---|
| service-mcp | MCP gateway & Starlette ASGI server | 7070 |
| service-toolx | TextAttack & Garak HTTP micro-service | 7575 |
| service-agent | Multi-tool conversational agent powered by ADK | 5000 |
All three services are defined in their own Docker Compose files to allow independent builds. For production deployments you can spin them up concurrently or cherry-pick only the components you need.
┌──────────────┐ SSE ┌───────────────┐ REST ┌──────────────┐
│ Clients │──────────────►│ service-mcp │─────────►│service-toolx │
└──────────────┘ └───────────────┘ └──────────────┘
│
│ REST
▼
┌───────────────┐
│ service-agent │
└───────────────┘
Contributions
Contributions welcome! 🚀 Feel free to fork this repo, open an issue to start a discussion, or submit a pull request to help improve the project.
License
This repository is licensed under the Apache 2.0 license. The license is avaialable at
Credits
Built with ❤️ by Avaly.ai. For support, reach out at: contact@avaly.ai.