Vitally MCP Server
The Vitally MCP Server provides access to the Vitally customer success platform's REST API, enabling operations on customer data through MCP-compatible clients.
Tool Discovery: Search available tools by keyword
Account Management: Search accounts by name or external ID, retrieve health scores, conversations, tasks, and notes
User Search: Look up users by email, external ID, or email subdomain
Notes: Retrieve, fetch by ID, or create notes for accounts
Comprehensive Resource Coverage: Full CRUD operations across 17 resource types including organizations, users, conversations, messages, projects, tasks, NPS responses, admins, custom objects, meetings, custom traits, and custom surveys
Flexible Data Center Support: Connects to EU or US Vitally data centers based on configuration
Intelligent API Handling: Automatically retries rate-limited requests and trims heavy response fields for efficiency
Update Management: Built-in
Check_for_updatestool to identify newer GitHub releasesPermission-Aware Tools: Each tool is tagged as
ReadOnlyorDestructivefor bulk permission management by MCP clients
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Vitally MCP Serverfind accounts with 'Acme' in their name"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vitally MCP Server
A Model Context Protocol server that exposes the Vitally customer success platform's REST API to MCP-compatible clients such as Claude Desktop and Claude Code.
Built in C# on .NET 10 and the official ModelContextProtocol SDK, distributed as both a Windows MCPB bundle (Claude Desktop) and a standalone single-file executable (Claude Code or any direct-launch MCP host).
Features
Full CRUD coverage of 93 endpoints across 17 Vitally resource types: accounts, organisations, users, conversations, messages, notes, projects, project templates, project categories, tasks, NPS responses, admins, custom objects (and instances), meetings (with participants and transcripts), custom traits, and custom surveys.
Permission-aware tools — every tool is tagged
ReadOnly/Destructiveso MCP clients can enable or disable categories of operation in bulk.EU and US data centres — defaults to EU (
rest.vitally-eu.io); setVITALLY_REGION=USto point at{subdomain}.rest.vitally.io.Rate-limit-aware HTTP pipeline — auto-retries on
429 Too Many RequestshonouringRetry-AfterandX-RateLimit-Reset, and logs a warning when remaining requests drop below threshold.Client-side field & trait filtering — responses are trimmed before they reach the LLM, each resource type with sensible defaults that exclude heavy fields (rich text, transcripts, full traits objects).
In-process update check — the
Check_for_updatesMCP tool reports whether a newer GitHub Release is available and returns architecture-matched download URLs.
Installation
Pre-built artefacts are published to GitHub Releases. Every release contains four binaries plus a SHA256SUMS.txt:
File | Audience |
| Claude Desktop on Intel/AMD64 |
| Claude Desktop on ARM64 |
| Claude Code (or any direct-launch host) on Intel/AMD64 |
| Claude Code on ARM64 |
Claude Desktop
Download the
.mcpbfile for your architecture from the latest release.Double-click — Claude Desktop installs the server and prompts for the configuration values declared in
manifest.json.Provide
VITALLY_API_KEY. LeaveVITALLY_REGIONblank to use the default (EU), or set it toUSand supplyVITALLY_SUBDOMAINfor a US tenant.Restart Claude Desktop.
Claude Code
Claude Code expects a path to an executable. Download the .exe for your architecture (e.g. to C:\Tools\VitallyMcp\VitallyMcp.exe) and add the server to your MCP config (~/.claude.json or project-local .mcp.json):
{
"mcpServers": {
"vitally": {
"command": "C:\\Tools\\VitallyMcp\\VitallyMcp.exe",
"env": {
"VITALLY_API_KEY": "sk_live_your_key",
"VITALLY_REGION": "EU"
}
}
}
}For a US tenant, swap to "VITALLY_REGION": "US" and add "VITALLY_SUBDOMAIN": "your-subdomain".
Configuration
Variable | Required | Default | Description |
| Yes | — | Vitally API key, format |
| No |
| Data centre: |
| Only when | — | Your Vitally subdomain, e.g. |
Updating
Inside the host, ask Claude to call Check_for_updates. The tool returns:
the running version,
the latest GitHub Release version,
whether an update is available, and
pre-resolved download URLs matching your architecture for both
.mcpb(Claude Desktop) and.exe(Claude Code).
To apply an update:
Claude Desktop: download the new
.mcpband double-click to reinstall.Claude Code: download the new
.exeand replace the file referenced bycommandin your MCP config.
There's no self-replacing binary by design: the Windows file lock on a running .exe makes that fragile, and the manual swap takes only a few seconds.
Tool catalogue
The server publishes ~95 MCP tools, one per Vitally REST endpoint. Each tool's [McpServerTool] attribute sets ReadOnly = true for list/get operations and Destructive = true for create/update/delete, so MCP clients can permission them in bulk.
Resource | List / search | Get | Create | Update | Delete | Sub-resources |
Accounts | ✓ | ✓ | ✓ | ✓ | ✓ | health-score breakdown |
Organizations | ✓ | ✓ | ✓ | ✓ | ✓ | — |
Users | ✓ (+search) | ✓ | ✓ | ✓ | ✓ | by account, by organisation |
Conversations | ✓ | ✓ | ✓ | ✓ | ✓ | by account, by organisation |
Messages | ✓ | ✓ | ✓ | — | ✓ | by conversation |
Notes | ✓ | ✓ | ✓ | ✓ | ✓ | by account, by organisation, note categories |
Projects | ✓ | ✓ | ✓ (from template) | ✓ | ✓ | by account, by organisation |
Project templates | ✓ | ✓ | — | — | — | project categories |
Tasks | ✓ | ✓ | ✓ | ✓ | ✓ | by account, by organisation, task categories |
NPS responses | ✓ | ✓ | ✓ | ✓ | ✓ | by account, by organisation |
Admins | search by email | — | — | — | — | — |
Custom objects | ✓ | ✓ | ✓ | ✓ | — | instances (list, search, CRUD) |
Meetings | ✓ | ✓ | ✓ | ✓ | ✓ | by account, by organisation, participants, transcripts |
Custom traits | schema discovery | — | — | — | — | — |
Custom surveys | responses (list, get) | survey question | — | — | — | — |
Updates | check for updates | — | — | — | — | — |
Full per-tool descriptions are in Output/mcpb/manifest.json and the developer guide in CLAUDE.md.
Building from source
Prerequisites: .NET 10 SDK, Node.js 20+, PowerShell 7+, and the MCPB CLI (npm install -g @anthropic-ai/mcpb).
# Restore + build + run the test suite (200+ tests)
dotnet test VitallyMcp.sln -c Release --nologo --verbosity minimal
# Standalone exe (Claude Code), auto-detects architecture
.\Scripts\build-standalone.ps1
# MCPB bundle (Claude Desktop), auto-detects architecture
.\Scripts\build-mcpb.ps1
# Both, with a version bump
.\Scripts\build-all.ps1 # Revision bump
.\Scripts\build-all.ps1 -BumpType Minor
.\Scripts\build-all.ps1 -BumpType MajorSee CLAUDE.md for the deeper development guide, including the VitallyService filtering model, the rate-limit handler, the raw-passthrough pattern, and per-resource default field sets.
Releases
Releases are produced automatically by .github/workflows/release.yml when a vX.Y.Z tag is pushed. The workflow pins the .csproj and manifest versions to the tag, runs the test suite, builds win-x64 and win-arm64 artefacts for both Claude Desktop and Claude Code, computes SHA-256 checksums, and creates a GitHub Release with auto-generated notes.
Architecture
VitallyMcp/
├── Program.cs # Host + DI setup, MCP stdio server
├── VitallyConfig.cs # Env-var loading and region selection
├── VitallyService.cs # HTTP client + client-side JSON filtering
├── VitallyRateLimitHandler.cs # 429 retry + rate-limit warnings
├── UpdateCheckService.cs # GitHub Releases probe for Check_for_updates
└── Tools/ # One file per Vitally resource type
├── AccountsTools.cs
├── OrganizationsTools.cs
├── UsersTools.cs
├── ConversationsTools.cs
├── MessagesTools.cs
├── NotesTools.cs
├── ProjectsTools.cs
├── ProjectTemplatesTools.cs
├── TasksTools.cs
├── NpsResponsesTools.cs
├── AdminsTools.cs
├── CustomObjectsTools.cs
├── MeetingsTools.cs
├── CustomTraitsTools.cs
├── SurveysTools.cs
└── UpdatesTools.csThe VitallyService exposes two call patterns:
Standard envelope (
GetResourcesAsync,GetResourceByIdAsync,CreateResourceAsync,UpdateResourceAsync,DeleteResourceAsync) — for endpoints returning{results, next}. Applies client-side field and trait filtering with resource-specific defaults.Raw passthrough (
GetRawAsync,PostRawAsync,DeleteRawAsync) — for endpoints whose response shape differs from the standard envelope (surveys'{data}, custom-fields' bare array) or for sub-resource sub-paths (meeting participants, meeting transcripts).
All HTTP traffic flows through VitallyRateLimitHandler, a DelegatingHandler registered via AddHttpMessageHandler<>() in Program.cs.
Security
Credentials are read from environment variables at startup. They are never written to disk by the server.
All API requests use HTTPS with HTTP Basic auth (Base64-encoded API key).
Tools are tagged with
ReadOnlyandDestructiveattributes so MCP clients can permission categories of operation in bulk.The
.mcpbfiles distributed in Releases do not contain credentials — the host injects them at runtime from the user's configuration.
Licence
Proprietary — © FISCAL Technologies Ltd. All rights reserved.
Support
Internal: Infrastructure team at FISCAL Technologies.
Issues: GitHub Issues.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/fiscaltec/vitally-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server