Avaly-MCP-server

Avaly-ai-Corp/Avaly-MCP-server

3.1

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.

Avaly MCP Server

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 Events
  • http://localhost:7575 – ToolX micro-service
  • http://localhost:5000 – Agent REST API

Endpoints

Agent API (service-agent)

MethodEndpointPurpose
POST/api/create_sessionCreate a new chat session
POST/api/runSend 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

Sample Output


Architecture

ServiceDescriptionPort
service-mcpMCP gateway & Starlette ASGI server7070
service-toolxTextAttack & Garak HTTP micro-service7575
service-agentMulti-tool conversational agent powered by ADK5000

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.