Adam OS MCP Server
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., "@Adam OS MCP ServerWhat's my labor percentage this week for both restaurants?"
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.
Adam OS — MCP Server
Executive Operating System for Adam Perna · Stoic Holdings · CH Projects · San Diego
What This Does
Adam OS runs as an MCP server inside Claude Desktop. You talk to it naturally — Claude uses the tools automatically.
Related MCP server: Toast MCP Server
Tools Available
Tool | What it does |
| Full status of both restaurants |
| Labor hours, cost, % by location |
| Hours per employee, overtime flags |
| Sales, covers, avg check by location |
| Per-server breakdown for tip pools |
| Parse & store any Toast CSV export |
| Show all previously imported files |
| Tip pool math from server sales data |
| Open tasks, filtered by priority |
| Create a new task |
| Mark task done |
| Save shift notes, incidents, observations |
| Retrieve saved notes |
| Full health check of Adam OS |
Installation
bash install.shImporting Toast Data
In Toast: Reports → Labor → Time Entries → Export CSV
In Toast: Reports → Sales Summary → Export CSV
In Toast: Reports → Server Sales → Export CSV
Drop the files in
~/Desktop/Toast ImportsTell Claude: "Import my Toast CSV"
Data Storage
All data stored locally at ~/.adam-os/adam.db — SQLite, no cloud, no servers.
Example Conversations
"What's my labor percentage this week for both restaurants?"
"Who's close to overtime at Reading Club?"
"I dropped a Toast CSV on my desktop, can you import it?"
"Calculate the tip pool for last week at Seneca"
"Add a high priority task: approve Saturday schedule"
"Run a system diagnostic"
Available Tools
14 toolsadd_taskC
Add a new task or action item.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| priority | No | medium | |
| due_date | No | ||
| category | No | General | |
| business | No | Both |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic purpose. It does not disclose that it creates a new resource, any side effects, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise but lacks necessary detail. It is essentially a tautology of the tool name and does not provide enough context for effective use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters and no output schema or annotations, the description is woefully incomplete. It does not explain what the tool does beyond the basic action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
0% schema description coverage and the tool description adds no information about any of the 5 parameters beyond their names in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool adds a new task or action item, which distinguishes it from siblings like complete_task (completes) and get_tasks (retrieves).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The description does not mention prerequisites or contexts where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_tip_poolC
Calculate tip pool distribution based on imported server sales data.
| Name | Required | Description | Default |
|---|---|---|---|
| business | No | both |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'calculate', lacking details on whether it modifies data, requires authentication, or has side effects. The agent cannot gauge safety or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence with no wasted words, but it is too brief to be sufficiently informative. Conciseness at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and siblings like get_server_sales, the description should clarify what the distribution output looks like and how 'business' affects calculation. It provides no such details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage and the description adds no explanation for the sole parameter 'business' (default 'both'). The agent must guess its meaning and allowed values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource 'Calculate tip pool distribution' and distinguishes from siblings like get_server_sales or import_toast_csv by indicating it operates on imported data. However, it could be more precise about what the distribution entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It implies reliance on imported data but fails to state prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_taskC
Mark a task as complete.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It does not disclose side effects, such as whether the task must exist or if completion is reversible, leaving the agent uninformed about behavioral traits beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no unnecessary words, but it is under-specified for a tool that could benefit from more context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description is minimally adequate but lacks context about task states or constraints, leaving the agent without sufficient information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'task_id' has no schema description (0% coverage). The description adds no meaning, leaving the agent to infer details from the parameter name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Mark a task as complete' clearly states the verb ('mark') and resource ('task'), and the action is distinct from sibling tools like add_task (create) and get_tasks (list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like add_task or get_tasks. There is no mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_business_overviewA
Get a complete overview of both restaurants — Reading Club and Seneca Trattoria — including current KPIs, alerts, and data status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool returns KPIs, alerts, and data status, implying a read-only operation with no side effects. It does not mention performance or cost, but given the parameterless nature, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys all essential information without waste. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless tool without an output schema, the description adequately covers the return value components. However, it could be slightly more specific about what constitutes 'KPIs' or 'alerts'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema description coverage is 100%. The description adds value by specifying the content of the overview (KPIs, alerts, data status), exceeding the baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a 'complete overview' of two specific restaurants with KPIs, alerts, and data status. It implies an aggregated view, distinguishing it from sibling tools like get_sales_summary or get_labor_summary that focus on specific areas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description suggests using this tool for a high-level overview, but does not explicitly contrast it with sibling tools or state when not to use it. Some guidance on when to prefer more detailed tools would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_employee_hoursB
Get hours and pay for employees. Flags overtime. Use to check if anyone is approaching overtime threshold.
| Name | Required | Description | Default |
|---|---|---|---|
| employee_name | No | Employee name (partial ok). Leave empty for all. | |
| days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states it flags overtime, implying a read-only behavior with additional processing. No mention of side effects, permissions, or data limits. For a simple retrieval, this is adequate but not exemplary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundant information. Every word serves a purpose. The description is front-loaded with the core action and immediately provides a practical use case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters and no output schema, the description covers the basic purpose and a use case. However, it lacks details on return format, pagination, or behavior with empty employee_name. It is minimally adequate but could be more complete given the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (employee_name described, days only has default). The tool description adds no additional parameter meaning; it does not explain the 'days' parameter or clarify input formats. With low coverage, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it retrieves hours and pay and flags overtime. The verb 'Get' and resource 'employee hours' are specific. While it doesn't explicitly contrast with siblings, its focus on individual employee hours and overtime distinguishes it from broader summary tools like 'get_labor_summary'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a specific use case: 'Use to check if anyone is approaching overtime threshold.' However, it lacks guidance on when not to use it or mention of alternative tools (e.g., 'get_labor_summary' for aggregated data). The usage hint is present but incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_labor_summaryA
Get labor hours, cost, and labor percentage. Works with real Toast data if imported, otherwise shows current known metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| business | No | Restaurant name or "both" | both |
| days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It reveals an important trait: the tool's output depends on whether real Toast data is imported. However, it does not state read-only nature, auth requirements, or rate limits. The single behavioral detail is helpful but insufficient for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the purpose. Every word adds value: the first sentence states what it returns, the second clarifies data source context. No waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description provides the core return fields but lacks detail on output structure (e.g., format of 'cost' or 'percentage'). The phrase 'current known metrics' is vague. With no output schema, the description should more fully explain what the agent can expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50% (business has description, days does not). The description adds no additional meaning to the parameters beyond the schema. It does not explain how 'business' values like 'both' affect results or what 'days' range is valid. For low coverage, the description should compensate, but it fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get labor hours, cost, and labor percentage', using a specific verb and resource. It clearly communicates the tool's output and distinguishes it from siblings like get_employee_hours by combining hours and cost. The context about data sources further clarifies its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing a labor summary, but does not provide explicit when-to-use or when-not-to-use guidance, nor does it reference alternatives like get_employee_hours or get_sales_summary. The conditional data source hint provides minor context but lacks clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notesC
Get saved shift notes, incidents, or observations.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | ||
| business | No | both | |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It states a read operation ('get') but does not mention potential effects, permissions, pagination, or filtering behavior beyond the implied retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, making it concise, but it lacks structure. It does not front-load key details like parameters or return format, and is overly brief for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters, no output schema, and no annotations, the description is incomplete. It lacks explanations of parameter defaults (e.g., business='both', limit=10) and does not describe the output shape, leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, requiring the description to explain parameters. The description fails to define 'category', 'business', or 'limit', leaving the agent without meaning for these fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'get' and specifies the resource as 'saved shift notes, incidents, or observations,' clearly indicating retrieval. It distinguishes from sibling tools like save_note (write) and get_tasks (different resource). However, it could be more precise about the exact content returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. Siblings like save_note (for saving) and get_tasks (for tasks) exist but are not compared. There is no mention of prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sales_summaryC
Get sales, covers, and average check data from imported Toast reports.
| Name | Required | Description | Default |
|---|---|---|---|
| business | No | both | |
| days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It mentions the data comes from 'imported Toast reports,' but does not explain what happens if no imports exist, whether it is read-only (implied by 'get'), or any error conditions. Minimal transparency beyond basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence conveying the core purpose without any redundancy. It is appropriately front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema or annotations, the description lacks essential details: parameter semantics, output structure, prerequisites, and error conditions. Incomplete for reliable agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it does not explain either parameter: 'business' (what values, e.g., 'both' meaning?) or 'days' (lookback period?). The agent has no semantic context for correct parameter usage, making invocation error-prone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'sales, covers, and average check data'. It distinguishes itself from siblings like get_business_overview or get_server_sales by specifying the exact data points. However, it could be more specific about the source ('imported Toast reports') to avoid confusion with similar data tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The description implies it should be used for Toast report data, but does not state prerequisites (e.g., data must be imported first) or when to avoid it. No sibling differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_server_salesC
Get per-server sales, covers, and tips. Used for tip pool calculations.
| Name | Required | Description | Default |
|---|---|---|---|
| business | No | both | |
| days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It indicates what data is returned but does not disclose read-only nature, potential side effects, authentication needs, or behavior on invalid inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no redundant information. Purpose and usage context are front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple with two parameters, the description omits parameter explanations and output details, leaving the agent to guess about inputs. Incomplete for effective invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, yet description does not explain the two parameters (business, days) beyond what the schema provides (defaults). No guidance on valid values or meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it retrieves per-server sales, covers, and tips. The phrase 'per-server' distinguishes from aggregate sales summaries like get_sales_summary, and 'used for tip pool calculations' connects to calculate_tip_pool. However, it does not explicitly differentiate from all siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States it is used for tip pool calculations, giving context. But it does not mention when to avoid using it or provide explicit alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tasksB
Get tasks and to-dos. Filter by priority or status.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | "open", "high", "done", or "all" | open |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It implies a read-only operation but does not explicitly state it is non-destructive or describe any side effects. The description is adequate but lacks explicit transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It efficiently conveys the core action and filtering capability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the main action and filtering. However, it omits details about the return format or that it returns a list, which would be helpful but is not critical given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the 'filter' parameter with enum-like values. The description adds 'by priority or status', which is redundant but confirms the filtering purpose. Since schema coverage is 100%, the description provides minimal added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'tasks and to-dos', and mentions filtering. However, it does not differentiate from sibling tools like 'complete_task' or 'add_task', which have distinct purposes, so it loses some clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. While siblings like 'complete_task' are clearly different, there is no explicit context about when filtering is appropriate or when to use other retrieval tools like 'get_notes'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_toast_csvA
Import a Toast POS CSV export. Auto-scans ~/Desktop/Toast Imports folder if no path given. Accepts labor, sales summary, or server sales reports.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No | Full path to CSV. Leave empty to auto-scan ~/Desktop/Toast Imports | |
| business_name | No | Restaurant name for this data |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present. Description discloses auto-scanning behavior but omits details on file format expectations, success/failure outcomes, overwrite behavior, permissions required, or idempotency. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. First sentence states core purpose, second adds key details (auto-scan, accepted types). Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two optional parameters and no output schema, the description covers core functionality: import CSV, auto-scan folder, acceptable report types. It omits file format constraints and outcome details but is still largely complete for a simple import tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters described in the schema. The description repeats the file_path schema text, adding no new meaning. It does not mention business_name parameter, so no extra value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool imports a Toast POS CSV export, specifies verb 'import' and resource 'CSV export.' It lists accepted report types (labor, sales summary, server sales), distinguishing it from sibling read tools like get_sales_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides context on when to omit file_path (auto-scan folder) and lists accepted CSV types. It implicitly differentiates from siblings as an import tool, but lacks explicit when-not-to-use or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_importsA
List all previously imported Toast CSV files.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavior. It indicates a read-only listing operation, but does not disclose details like pagination, ordering, or data freshness. Adequate for a simple list, but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence containing all essential information. No wasted words; concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter list tool, the description is adequate but lacks hints about the output format or any edge cases. Without an output schema, the agent would benefit from knowing what fields or metadata are returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (schema coverage is 100%), so the description cannot add parameter-level information. Per guidelines, 0 parameters baseline is 4. No additional value is needed or provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'previously imported Toast CSV files', making the tool's purpose unambiguous. It also implicitly distinguishes from sibling tool 'import_toast_csv', which handles importing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for viewing past imports but does not explicitly state when to use it over alternatives or provide any exclusions. No guidance on prerequisites or use cases is given beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_noteC
Save a shift note, incident report, or any observation.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| content | Yes | ||
| category | No | General | |
| business | No | Both |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only mentions 'Save' without indicating if it creates or updates, side effects, permissions needed, or data persistence. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it is underspecified. It does not earn its place by providing enough information for effective tool usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and 4 parameters with no descriptions, the description is wholly inadequate. It does not explain return values, required permissions, or how to use the tool in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all 4 parameters, and the description adds no additional meaning beyond the parameter names. The examples in the description do not clarify what each parameter expects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Save' and the resource 'note', with examples like shift note, incident report, or observation. It is specific enough about what the tool does, though it does not differentiate from siblings like add_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. With siblings like add_task and get_notes, the description should indicate when saving a note is appropriate, but it does not provide such context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_diagnosticB
Run a complete health check of Adam OS. Check all data, tools, and status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description uses 'check' implying read-only but does not confirm safety, side effects, or resource impact. For a diagnostic tool, this is insufficient disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences (15 words) front-loading the main action. No wasted text; every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the agent gets no info on return values (e.g., status report format, errors). 'Complete health check' is vague; lacks specifics like system components checked or expected outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; schema coverage is 100%. The description correctly implies no inputs needed. Baseline 4 for zero-param tools is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'run' and resource 'complete health check of Adam OS', with 'check all data, tools, and status' specifying scope. Distinct from sibling business-operation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use, when-not-to-use, or alternative tools. Only implicit from the name; lacks guidance on prerequisites or conditions for running a diagnostic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
14 tool updates
v1.0.0- First observed
add_task - First observed
calculate_tip_pool - First observed
complete_task - First observed
get_business_overview - First observed
get_employee_hours - First observed
get_labor_summary - First observed
get_notes - First observed
get_sales_summary - First observed
get_server_sales - First observed
get_tasks - First observed
import_toast_csv - First observed
list_imports - First observed
save_note - First observed
system_diagnostic
TDQS
Each tool targets a distinct aspect of restaurant management: tasks, sales, labor, notes, imports, and system diagnostics. There is no overlap; even related tools like get_sales_summary and get_server_sales are clearly differentiated by scope.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., add_task, get_sales_summary, import_toast_csv). No mixing of conventions or vague verbs.
With 14 tools covering tasks, sales, labor, imports, and health checks, the count is well-scoped for a restaurant management assistant. Each tool feels necessary without redundancy.
The tool set covers core CRUD operations for tasks and notes, plus detailed reporting and imports. Minor gaps exist—no update or delete for tasks/notes—but the core workflows are complete, and the system_diagnostic tool provides additional oversight.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Run your restaurant from an AI client: orders, menu, reports, refunds, payouts and staff.
The brain for restaurant costs, pricing, and true profit (read/edit menu, recipes, costs).
Manage projects, tasks, time tracking, and team collaboration through natural language.
Personal finance by conversation: expenses, receipts, statement import, budgets, net worth.
Related MCP Servers
- FlicenseDqualityDmaintenanceEnables interaction with a restaurant FastAPI backend for menu management, order processing, customer management, and analytics through natural language.241-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage restaurant operations by integrating with Toast POS, including orders, menus, employees, payments, inventory, and reporting through 50+ tools and 18 React apps.11MIT
- FlicenseBqualityBmaintenanceEnables AI assistants to manage Gerent365 restaurant and business operations via natural language, including employees, schedules, payroll, tips, time tracking, customers, products, reservations, and reports.531-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to query live Toast POS data and generate sales, labor, and cash reports while answering restaurant operations questions, all in a read-only manner.12MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/adamperna74/ADAM-OS-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server