tend-mcp

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.

Category
Visit Server

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 stubslogin() 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:

  1. Log into tend.com in Chrome, open DevTools → Network, filter to Fetch/XHR.
  2. Perform the action you want to support (view appointments, search availability, book, etc.).
  3. 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.
  4. 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. .gitignore here already excludes *.har, but that only helps once it's on disk — don't paste raw HAR content into a chat either without redacting Authorization/Cookie/Set-Cookie values first.
  5. Update login() and the relevant method (listAppointments, bookAppointment, etc.) in tendClient.ts to 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured