A monorepo containing Model Context Protocol (MCP) servers for Truvera API integrations. MCP servers let AI assistants (Claude, GitHub Copilot, etc.) call real Truvera API operations as tools.
| Server | Status | Description |
|---|---|---|
apps/truvera-api |
✅ Production-ready | Verifiable credentials, DIDs, presentations, schemas, profiles, AP2 mandates |
apps/wallet-server |
🚧 Work in progress | Truvera Wallet SDK integration — not ready for use |
- Node.js 18+
- Docker (recommended — builds and runs the server in a container)
- A Truvera API key (sign up at truvera.io)
git clone https://github.com/docknetwork/truvera-mcp-server.git
cd truvera-mcp-server
npm installcp apps/truvera-api/.env.example apps/truvera-api/.env
# Edit apps/truvera-api/.env and set your TRUVERA_API_KEY# Build the Docker image
npm run docker:build:api
# Start the server in HTTP mode on port 3000
npm run docker:run:api
# Verify it's running (should return {"status":"ok",...})
curl http://localhost:3000/healthThe server is now running and ready to connect to your AI assistant. See Connecting to AI Assistants below.
cd apps/truvera-api
npm run build
MCP_MODE=http npm start # HTTP transport (recommended)Transport modes: HTTP transport is well-tested and recommended for development and production. STDIO transport is experimental — use it only if your client requires it and you are comfortable with limited test coverage.
Once the server is running in HTTP mode on port 3000:
Add to your Claude Desktop config:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"truvera": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:3000/mcp", "--insecure"]
}
}
}The workspace .vscode/mcp.json is already configured. Start the server, then in the Copilot chat pane click Configure tools... → Update tools under truvera-mcp-service-vs-code.
Use MCP Inspector to debug or manually exercise tools from any MCP server in this repo (for example, apps/truvera-api now, and apps/wallet-server as it matures).
npx @modelcontextprotocol/inspectorTruvera API server (HTTP mode):
npm run docker:run:api
# or: cd apps/truvera-api && MCP_MODE=http npm run devWallet server (HTTP mode, work in progress):
cd apps/wallet-server
MCP_MODE=http npm run dev- Open
http://localhost:6274 - Choose Streamable HTTP transport
- Connect to the target server endpoint:
- Truvera API:
http://localhost:3000/mcp - Wallet server:
http://localhost:3010/mcp(ifMCP_PORT=3010)
- Truvera API:
If connection fails, check the target server health endpoint first (/health) and confirm ports/env values.
truvera-mcp-server/
├── apps/
│ ├── truvera-api/ # ✅ Truvera REST API MCP server (production-ready)
│ └── wallet-server/ # 🚧 Wallet SDK MCP server (work in progress)
├── packages/
│ └── mcp-shared/ # Shared MCP server bootstrap utilities
├── .vscode/ # VS Code tasks, launch configs, MCP server config
├── docker-compose.yml # Compose file for running the truvera-api service
└── README.md # This file
Run from the repo root:
npm install # Install all workspace dependencies
npm run build # Build all packages and apps
npm run test # Run all tests
npm run docker:build:api # Build the truvera-api Docker image
npm run docker:run:api # Run the truvera-api container on port 3000For development server with hot-reload (HTTP transport):
MCP_MODE=http npm run dev:apiSee apps/truvera-api/README.md for full documentation including all environment variables, available tools, and testing instructions.
GitHub Actions builds all apps, runs unit and integration tests, and performs a smoke test on every push. See .github/workflows/ci.yml for details.
Docker image publishing uses two tag policies:
latestis pushed only when a GitHub Release is published from themasterbranch (stable release image).- All other Docker publishes are tagged only with the build number from
apps/truvera-api/.buildnumber(or GitHub run number fallback) and should be treated as unstable builds.
- Create a feature branch
- Make your changes
- Ensure tests pass:
npm test - Submit a pull request