tend-mcp
An unofficial MCP server for Tend dental that aims to let users access their own Tend account data (e.g., appointments) via natural language. Currently it is scaffold-only with stub API calls and not yet functional.
README
tend-mcp
An unofficial MCP (Model Context Protocol) server for Tend dental — not affiliated with, endorsed by, or supported by Tend. It talks to internal API endpoints their own web app calls, discovered via browser devtools, not a published/documented API. Expect it to break without notice if Tend changes their frontend.
Use at your own risk. This has not been reviewed against Tend's Terms of Service — read them yourself before running this, and be ready to stop if Tend objects. Each instance authenticates as one Tend account and only ever accesses that account's own data; it is not designed or intended to access any other patient's records.
Status: scaffold only
The MCP server wiring (tool registration, stdio transport) works. The actual Tend API calls in src/tendClient.ts are stubs — login() throws until real endpoints are filled in. Nothing will work until that's done.
Setup
npm install
cp .env.example .env # fill in your own Tend login
npm run dev # or: npm run build && npm start
Point an MCP client (Claude Desktop, etc.) at it by adding to its MCP config, e.g. Claude Desktop's claude_desktop_config.json:
{
"mcpServers": {
"tend": {
"command": "node",
"args": ["/absolute/path/to/tend-mcp/dist/index.js"],
"env": { "TEND_EMAIL": "you@example.com", "TEND_PASSWORD": "..." }
}
}
}
Adding a real endpoint
Everything in src/tendClient.ts is a placeholder. To fill one in:
- Log into tend.com in Chrome, open DevTools → Network, filter to Fetch/XHR.
- Perform the action you want to support (view appointments, search availability, book, etc.).
- Export a HAR (right-click the request list → "Save all as HAR"), or just note the individual request: method, URL, headers, request body, response body.
- Before sharing a HAR with anyone (including an AI assistant) — scrub it. HAR exports include cookies and auth headers verbatim; a leaked one is equivalent to leaking your login session.
.gitignorehere already excludes*.har, but that only helps once it's on disk — don't paste raw HAR content into a chat either without redactingAuthorization/Cookie/Set-Cookievalues first. - Update
login()and the relevant method (listAppointments,bookAppointment, etc.) intendClient.tsto match the real request/response shapes.
Design constraints (please keep these)
- One account per instance. No multi-tenant credential store, no server-side proxy holding multiple users' logins.
- No anti-bot evasion. If Tend's login has MFA or bot-detection, surface it to the user (or fail loudly) rather than trying to automate around it.
- No endpoints beyond what a real patient portal already exposes to that patient. Don't add anything that reaches into other patients' data.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.