An example AI agent with GitHub MCP integration, deployed as a Verifiable Service on the Verana ecosystem. This is part of the EAFIT Challenge.
This example agent is built with the hologram-generic-ai-agent-vs container, which provides a ready-to-use AI chatbot with DIDComm messaging, verifiable credential authentication, and MCP tool integration.
You can find other agent examples (GitHub Agent, Wise Agent, etc.) in the hologram-verifiable-services repository.
This agent is a child service of the EAFIT Challenge organization. It:
- Receives a Service credential from the organization (proves it's a legitimate service)
- Uses the Avatar credential definition from
avatar.eafit.testnet.verana.networkto authenticate users via AnonCreds proof requests - Provides GitHub MCP tools to authenticated users via encrypted DIDComm chat
├── config.env # Service configuration (ports, org URLs, credDef, etc.)
├── deployment.yaml # Helm chart values for K8s deployment
├── agent-pack.yaml # Chatbot agent pack (prompts, menus, MCP config)
├── common/
│ └── common.sh # Shared shell helpers
├── docker/
│ └── docker-compose.yml # Local development stack
├── scripts/
│ ├── setup.sh # Local setup (VS Agent + ngrok + Service credential)
│ └── start.sh # Start Docker Compose stack
├── docs/
│ └── README.md # User-facing guide
└── .github/
└── workflows/
└── deploy.yml # GitHub Actions workflow for K8s deployment
- Docker and Docker Compose
- ngrok (authenticated)
curl,jq- An OpenAI API key (or other LLM provider)
- Hologram Messaging on your phone
- An EAFIT Avatar credential (see below)
The setup script connects to the deployed EAFIT organization at admin.organization.eafit.testnet.verana.network to obtain the Service credential. No local organization instance is required.
The chatbot uses credential-based authentication — you need an EAFIT Avatar credential to test your agent.
- Open Hologram Messaging on your phone
- Navigate to https://avatar.eafit.testnet.verana.network/
- Scan the QR code and follow the prompts to obtain your credential
You can verify it works by connecting to the deployed example agent at https://example-agent.eafit.testnet.verana.network/ — scan the QR code, authenticate with your credential, and chat with the bot.
# 1. Set up the VS Agent (deploys container, gets Service credential)
set -a
source config.env
set +a
./scripts/setup.sh
# 2. Start the chatbot stack (chatbot + redis + postgres)
export MCP_CONFIG_ENCRYPTION_KEY=$(openssl rand -hex 32)
export OPENAI_API_KEY=sk-...
./scripts/start.shNote: if you don't want to use an OPENAI_API_KEY, you can configure any other LLM, refer to agent pack schema for available options.
The .github/workflows/deploy.yml workflow deploys the agent to the shared EAFIT Challenge K8s cluster.
| Secret | Description |
|---|---|
OVH_KUBECONFIG |
Kubeconfig for the K8s cluster |
K8S_NAMESPACE |
Target namespace (ideally, use your team name) |
EXAMPLE_AGENT_OPENAI_API_KEY |
OpenAI API key for the chatbot |
EXAMPLE_AGENT_POSTGRES_PASSWORD |
PostgreSQL password |
EXAMPLE_AGENT_MCP_CONFIG_ENCRYPTION_KEY |
Encryption key for MCP user configs (generate with openssl rand -hex 32) |
EXAMPLE_AGENT_WALLET_KEY |
VS Agent wallet encryption key (generate with openssl rand -base64 32) |
EXAMPLE_AGENT_VSAGENT_DB_PASSWORD |
VS Agent internal DB password |
Run the workflow from the GitHub Actions tab with step all to deploy and obtain credentials.
The agent will be available at the URL configured in AGENT_PUBLIC_URL (see below).
Key settings in config.env:
AGENT_PUBLIC_URL— Public URL of the deployed agent. For student teams, use the convention:https://<agentname>.agents.<team_name>.teams.eafit.testnet.verana.networkCREDENTIAL_DEFINITION_ID— AnonCreds credDef from the EAFIT Avatar service (hardcoded)ORG_VS_PUBLIC_URL— Public URL of the EAFIT organization agentSERVICE_NAME— Display name shown in the Service credentialOPENAI_MODEL— LLM model for the chatbot
Apache-2.0