Skip to main content
Glama
NimbleBrainInc

Granola MCP Server

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.3.1

  • Disambiguation3/5

    Most tools are distinct, but `list_meetings` and `search_by_person` both return lists of meetings with attendee filters, creating potential confusion. Descriptions help differentiate but overlap exists.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using snake_case (e.g., `list_meetings`, `get_meeting`, `search_meetings`). No mixed conventions or vague verbs.

    Tool Count5/5

    8 tools is well-scoped for a meeting notes query server. Each tool serves a clear purpose without unnecessary bloat or insufficiency.

    Completeness4/5

    Covers core querying needs: retrieve, list, search, summarize, extract action items, stats. Missing update/delete (likely out of scope) and a combined view of all action items, but minor gaps agents can work around.

  • Average 3.8/5 across 8 of 8 tools scored. Lowest: 3.1/5.

    See the Tool Scores section below for per-tool breakdowns.

  • This repository is archived. Archived repositories automatically receive an F maintenance tier.

  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so description carries full burden. It does not explicitly state that the tool is read-only, nor does it mention any side effects, auth requirements, or rate limits. The parameter descriptions add some context but behavioral traits are under-described.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness2/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Description includes a stray 'ctx: MCP context' line that does not correspond to any parameter in the input schema, creating inconsistency. It is moderately concise but the extra line wastes space and may confuse.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given 6 parameters and no annotations, description covers parameter meanings and return type ('Paginated list of meetings'). However, it lacks details on pagination behavior, error handling, and date format restrictions. With an output schema present, some of this is likely covered, but not guaranteed.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, but description provides a docstring-style explanation of each parameter, including defaults and expected format (e.g., YYYY-MM-DD for dates). This adds significant meaning beyond the bare schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Description clearly states 'List meetings with optional filters', which is a specific verb and resource. However, it does not explicitly distinguish from sibling tools like search_meetings, but the purpose is still clear.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Description implies usage by showing filter parameters but provides no guidance on when to use list_meetings vs search_meetings or other siblings. No 'when to use' or 'when not to use' information.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries full responsibility for behavioral traits. It implies read-only functionality through the search action but does not explicitly state that it is non-destructive, nor does it mention rate limits, authentication, 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.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is structured as a clear docstring with a purpose sentence, parameter list, and return statement. It is appropriately sized for 5 parameters, but could be slightly more concise by removing the 'ctx' mention not in schema.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (5 params, output schema exists), the description covers the basics but lacks differentiation from siblings and details like pagination or empty results handling. The return description is minimal, but the output schema mitigates this.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema has 0% description coverage, so the description must compensate. It explains all schema parameters (query, limit, date_from, date_to, attendee) beyond their names, adding meaning like defaults and format expectations. This adds significant value.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool searches meeting notes by keyword, using a specific verb and resource. However, it does not differentiate from sibling tools like 'search_by_person', which also searches but by person. This lack of distinction prevents a 5.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage for keyword searches but does not provide explicit guidance on when to use this tool versus alternatives like 'list_meetings' or 'search_by_person'. No when-not or alternative tool mentions are included.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description must fully disclose behavioral traits. It only states the tool 'gets' data, omitting details like required permissions, data freshness, side effects, or response size. This is insufficient for understanding the tool's full behavior.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is presented in a clear docstring-like format with Args and Returns sections, making it easy to scan. However, it includes an undocumented 'ctx' parameter (likely MCP context) that adds minor clutter. Overall, it is concise and well-structured.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the presence of an output schema, the description adequately covers the tool's purpose and parameters. It lacks guidance on usage context relative to sibling tools, but for a simple retrieval tool with good schema support, it is mostly complete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema has 0% description coverage, but the description adds meaningful context for both parameters: 'meeting_id: Meeting document ID' and 'include_transcript: Include full transcript in notes_plain field'. This goes beyond the bare schema, though the 'ctx' parameter is undocumented and might confuse.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Get complete meeting details including notes and summaries', using a specific verb and resource. It effectively distinguishes itself from sibling tools like list_meetings, get_transcript, and get_meeting_stats.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage when full meeting details are needed, but lacks explicit guidance on when to use this tool vs alternatives, such as when to use get_transcript or list_meetings instead. No 'when not to use' or alternative recommendations are provided.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so description bears all behavioral disclosure. It mentions output format options and return of transcript segments with timing, but omits potential errors, authorization needs, or side effects. Adequate but not exhaustive.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Very concise with structured Args and Returns sections. Each sentence adds value, and there is no redundant information.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given an output schema exists, description need not detail return values, but it does. However, it lacks context on usage scenarios and error handling. Adequate for a simple tool but could include more about when to use.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    With 0% schema description coverage, the description compensates by explaining meeting_id as 'Meeting document ID' and format as 'Output format - text or timestamped,' adding meaning beyond the schema property types.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Get the full transcript for a meeting,' specifying a concrete verb (get) and resource (transcript). It distinguishes itself from siblings like get_meeting (metadata) and extract_action_items (action items).

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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 such as get_meeting or search_meetings. Lacks explicit context or exclusions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description must fully disclose behavior, but it only states the basic operation (find meetings) and return type, omitting details like side effects, permissions, or rate limits.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is structured with clear Args and Returns sections, but it is slightly verbose with 5 lines for description plus 6 lines for details. It is informative and front-loaded with the main purpose.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given an output schema exists, the description's return statement is sufficient. All parameters are explained, and the description provides a complete picture for a search tool, though it could mention pagination or ordering.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The description adds significant meaning beyond the input schema by explaining each parameter's purpose and format, e.g., 'person: Person's name or email address' and 'date_from: Filter by start date (YYYY-MM-DD),' compensating for 0% schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Find all meetings involving a specific person,' using a specific verb and resource, and it distinguishes from siblings like search_meetings and list_meetings by focusing on the person filter.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage for searching by person but does not explicitly state when to use it versus alternatives like search_meetings or list_meetings, nor does it mention any exclusions or prerequisites.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations exist, so the description must carry behavioral disclosure. It states that the tool returns 'document counts, date range, and unique attendees', implying a read operation. However, it does not mention authentication needs, rate limits, or output format specifics beyond these fields.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is brief and includes an Args/Returns structure. However, the 'ctx: MCP context' line is generic and unnecessary, adding minor noise. Overall, it is front-loaded with purpose.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given that an output schema exists, the description does not need to fully explain return values. It mentions key statistics like document counts, date range, and unique attendees, which is sufficient for understanding. No critical gaps.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    There are no parameters (0 params), so baseline is 4. The description does not need to add parameter information; it correctly uses an empty input schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Get statistics about your Granola meeting data', specifying the verb 'Get' and the resource 'statistics'. This distinguishes it from siblings like get_meeting, list_meetings, and summarize_meetings, which have different focuses.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No explicit guidance on when to use this tool versus alternatives is provided. For a parameterless statistics tool, usage is straightforward, but the description could mention that it's for high-level overview rather than detailed data.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description must carry the burden. It describes the return as meetings with notes and attendees, but does not explicitly state that the operation is read-only or non-destructive. Sufficient but not detailed.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured: a concise summary sentence, usage guideline, bullet-like parameter explanations, and a return description. Every sentence earns its place with no redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's simplicity and the presence of an output schema, the description covers the essential inputs (time period, person filter) and output. It could mention that summaries are generated from notes, but overall it is complete for effective use.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The description adds meaning beyond the schema by explaining the date parameters (YYYY-MM-DD format, convenience of days) and person filtering. It clarifies the mutual exclusivity of date_from/date_to vs days. The 'ctx' parameter is not fully described, but it is standard.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Get meeting summaries with notes for a time period', specifying the verb, resource, and scope. It distinctly distinguishes from sibling tools like list_meetings, get_meeting, and search_meetings.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It explicitly says 'Use this when asked to summarize, recap, or review meetings over a period', giving clear context for when to invoke. It lacks explicit exclusions or alternative tool references, but the guidance is straightforward.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries full burden. It discloses that meeting_id takes precedence, person filter only works with date range, and the return format. However, it does not mention whether the operation is safe (read-only) or if it has 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.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured with an initial purpose statement followed by usage guidance and a parameter list. It is concise but could be slightly more succinct by removing the redundant 'Args:' section and integrating parameter descriptions more naturally.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the output schema exists (not shown), the description adequately covers the return format ('Extracted action items with source meeting context'). All 5 parameters are documented in the description, and the tool's behavior is fully specified for the given context.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, but the description compensates thoroughly. It explains precedence ('meeting_id takes precedence'), usage of date parameters (YYYY-MM-DD), the 'days' shortcut, and the constraint that person requires a date range.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'Extract' and resource 'action items from meeting notes'. It distinguishes from siblings like get_meeting, get_transcript, and search_meetings by focusing on action item extraction.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explicitly states when to use ('when asked for action items, TODOs, or next steps') and explains the two modes by meeting_id or date range. It does not directly contrast with sibling tools but the purpose is clear.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

mcp-granola MCP server

Copy to your README.md:

Score Badge

mcp-granola MCP server

Copy to your README.md:

Latest Blog Posts

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/NimbleBrainInc/mcp-granola'

If you have feedback or need assistance with the MCP directory API, please join our Discord server