careops-mcp
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., "@careops-mcpCheck which carers have compliance issues in the next 30 days"
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.
careops-mcp
An MCP (Model Context Protocol) server that exposes a home-care provider's operational database to Claude — with schema-validated write tools and a tamper-evident, hash-chained audit log of every call.
Built as a working demonstration of authoring a production-style MCP server in Python: secure bidirectional connection between an LLM and local data, strict input validation before anything touches the database, and an audit trail that can prove it hasn't been altered.
What it does
Surface | Name | Purpose |
Tool |
| Query clients by suburb / preferred language |
Tool |
| One client's record + upcoming visits |
Tool |
| Write tool, Pydantic-validated: rejects past dates, malformed times, out-of-range durations, unknown IDs, and carer double-bookings |
Tool |
| Carer certifications expired or expiring within N days |
Tool |
| Re-walks the hash chain; reports the exact line if tampered |
Resource |
| Full JSONL audit trail of every tool call |
The audit log
Every tool invocation appends a JSONL entry carrying the SHA-256 of the previous entry:
{"ts": "...", "tool": "schedule_visit", "arguments": {...}, "status": "ok",
"prev_hash": "3f2a...", "hash": "9c41..."}Editing or deleting any historical record breaks the chain, and
verify_audit_log pinpoints the broken line. In compliance-sensitive
settings (aged care, audit) the question isn't only what did the AI do but
can you prove the record of it is intact — this answers both.
Related MCP server: GHL MCP Server
Run it
python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/python -m pytest # 9 tests: validation, double-booking, chain tamperingRegister with Claude Code:
claude mcp add careops -- /absolute/path/to/.venv/bin/python -m careops.serverOr Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"careops": {
"command": "/absolute/path/to/.venv/bin/python",
"args": ["-m", "careops.server"]
}
}
}Then ask Claude things like:
"Which carers have compliance problems in the next 30 days?"
"Schedule a personal-care visit for Mei Lin with a Mandarin-speaking carer tomorrow at 9am."
"Verify the audit log is intact."
The SQLite database self-seeds with demo data on first run.
Design notes
Validation before side effects.
schedule_visittakes a Pydantic model; bad input fails at the schema boundary and never reaches SQL. The double-booking check runs before the insert.Errors are honest. Unknown IDs and clashes raise with a clear message (surfaced to the model as a tool error) and are still audit-logged with an
error:*status — failures are part of the record.Compatible with mcp 1.x and 2.x. Imports
MCPServer(2.x) and falls back toFastMCP(1.x).
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
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ZGhey/careops-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server