Ops MCP Server (Finamatik)
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPS_MCP_DB | No | Path to a specific SQLite database file. | |
| OPS_MCP_HOME | No | Directory where data lives (ops.db and audit.jsonl). | ~/.finamatik-ops-mcp/ |
| OPS_MCP_AUDIT | No | Path to a specific audit log file. | |
| OPS_MCP_READ_ONLY | No | Set to 1 to remove the write tools from the tool list entirely; set to 0 to allow writes. | 0 |
| OPS_MCP_TRANSPORT | No | Set to streamable-http to serve /mcp on port 8000 over HTTP instead of stdio. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_contactsA | Find contacts by name, company, email, phone or city (case-insensitive substring). Returns up to |
| get_contactA | Full view of one contact: profile, deals, open tasks, last 5 notes, last 5 orders. Use the id from search_contacts (e.g. C-1007). |
| list_tasksA | List tasks, default open ones, optionally filtered by assignee (hamza|sana|ali) and due date (YYYY-MM-DD). Sorted by due date. |
| check_inventoryA | Stock levels. Pass a SKU for one item, or low_stock_only=true for items at/below their reorder level. |
| pipeline_summaryA | Deals by stage (count + AED value), open pipeline total, and open deals expected to close in the next 30 days. |
| add_noteA | Append a timestamped note to a contact's timeline (max 2,000 characters). |
| create_taskB | Create an open task for a contact. due_date is YYYY-MM-DD and may not be in the past. |
| complete_taskC | Mark a task done (idempotent). |
| update_deal_stageC | Move a deal to a new pipeline stage. |
| create_orderA | Place a sales order for a contact. Checks stock first. dry_run=true (default) only returns a priced preview , confirm with the user, then call again with dry_run=false to commit and decrement inventory. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| daily_ops_briefing | Morning briefing: overdue tasks, deals closing soon, low stock, with suggested next actions. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| schema | Data dictionary so the model knows what the ids and fields mean. |
| low_stock | |
| pipeline_resource |
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose: search vs. full profile lookup (search_contacts/get_contact), task listing vs. creation vs. completion, and inventory, pipeline, note, and order operations are all separate concerns. The only near-overlap (check_inventory vs. create_order stock check) is explicitly clarified in the descriptions.
Most tools follow a clean verb_noun pattern (search_contacts, get_contact, list_tasks, add_note, create_task, complete_task, update_deal_stage, create_order). The single outlier is pipeline_summary, which is noun-only with no verb, a minor deviation from an otherwise consistent convention.
Ten tools is well within the ideal 3-15 range and each one covers a distinct operational need for a CRM/ops assistant. No tool feels redundant or padded.
Tasks have list/create/complete but no update or delete, contacts can only be read (no create/update), and orders/deals lack listing or retrieval tools (e.g. no list_orders, get_deal, delete task). Core read workflows exist but the lifecycle surface has notable gaps that could cause dead ends.