remnus
Server Details
MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.
- Status
- Healthy
- Uptime
- 76.5% over 69 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Ranork/remnus-app
- GitHub Stars
- 72
- Server Listing
- Remnus
TDQS
Scored across 12 tools
The read tools are well-differentiated: get_page (single), get_pages (batch by id), query_database (filtered rows), get_changes_since (sync), get_related_pages (graph neighborhood), and search_workspace (text lookup) each have distinct triggers. The only mild overlap is between search_workspace and prepare_context, which both retrieve pages, though prepare_context's token-budgeted ranking pack is distinguishable.
All tools follow a clean verb_noun snake_case convention: get_*, list_*, query_*, search_*, plus prepare_context. No mixed casing or stray verb styles; predictable and readable throughout.
12 tools is right-sized for a workspace/Notion-style server, with each tool covering a distinct retrieval or operational need. No redundant or filler tools.
The surface is entirely read/query-oriented, yet descriptions reference writes ('before writing rows or changing views', 'a write is refused'), implying create/update/delete operations exist but are absent from the tool set. Agents can read and sync well, but cannot mutate content through these tools.
Available Tools
12 toolsget_changes_sinceARead-onlyInspect
Everything created, updated or deleted since a cursor (from the workspace digest/map or a previous call) or an ISO time — pages, databases, rows and deletions, oldest first. Omit both to bootstrap. Always keep nextCursor for the next call: this is how to catch up instead of re-reading the tree. An entry stamped in the cursor's own second may appear once more — dedupe by id.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | ISO 8601; ignored when cursor is given | |
| cursor | No | From the digest/map header or a previous nextCursor |
Output Schema
| Name | Required | Description |
|---|---|---|
| changes | Yes | Chronological, oldest first |
| hasMore | Yes | |
| nextCursor | Yes | Always present — pass back as cursor to continue or resume a later sync |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only annotation, the description discloses important behavior: returned changes include deletions, results are oldest-first, the cursor must be persisted, and an entry in the cursor's own second may reappear, requiring deduplication by id. This is valuable operational context not otherwise visible.
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?
Three dense sentences carry the full story: what it returns, how to use it correctly, and the one caveat to handle. There is no filler or repetition of schema text.
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 output schema exists and the annotations cover safety, the description supplies all essential procedural details: cursor chaining, bootstrapping, scope, ordering, and deduplication. An agent can call and paginate this tool correctly from the description alone.
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 already documents since and cursor, and the description adds useful context about cursor provenance (digest/map header or previous nextCursor) and bootstrap semantics. The limit parameter remains undocumented in the description, but its default and self-explanatory name reduce the gap.
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 states a specific verb and resource: 'Everything created, updated or deleted since a cursor... or an ISO time,' and enumerates the covered item types (pages, databases, rows, deletions) and ordering (oldest first). This clearly distinguishes it from sibling read tools like get_page or get_pages.
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?
It gives explicit usage direction: omit both parameters to bootstrap, always retain nextCursor for the next call, and use this tool to catch up 'instead of re-reading the tree.' This tells the agent exactly when and how to invoke it iteratively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_database_schemaARead-onlyInspect
Columns (id, name, type, options) and saved views of a database, without rows. Check it before writing rows or changing views.
| Name | Required | Description | Default |
|---|---|---|---|
| databaseId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| views | Yes | Saved views — always at least one |
| schema | Yes | Column definitions (id, name, type, options) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds concrete return-content boundaries (no rows) and a recommended precondition that goes beyond the readOnlyHint. It is consistent with the readOnlyHint and openWorldHint false, and no contradictions.
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?
One sentence with dense, front-loaded content: return contents first, then the use trigger. No filler.
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 one-parameter read-only tool with an output schema and readOnlyHint, the description supplies the key boundary (schema vs rows) and the intended call timing. Nothing essential is missing.
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 is no parameter explanation in the description, and schema coverage is 0%, so the description was expected to compensate. The single databaseId is self-explanatory from its name, but the description adds no format, origin, or usage detail beyond 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 names the resource ('a database') and a specific verb ('get'), enumerates the exact contents (columns id/name/type/options and saved views), and explicitly excludes rows. This lets an agent distinguish it from row-returning siblings like query_database.
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?
It states a clear trigger: 'Check it before writing rows or changing views.' It does not explicitly name sibling alternatives or state when not to use it, but the 'without rows' caveat implies row queries belong elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pageARead-onlyInspect
Read a page, database row or dashboard by id (type auto-detected; a dashboard comes back as its block spec). mode: "outline" returns headings + first line per section — a cheap skim for a long page (the map shows body sizes) before a full read.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | full | |
| pageId | Yes | Page or row id | |
| includeComments | No | Also return the comment thread |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | No | Dashboard only: where a human can see it |
| icon | No | |
| mode | No | "outline" when collapsed |
| spec | No | Dashboard only: the block spec (outline mode: `blocks` with id/type/title instead) |
| type | Yes | page | database | database_row | dashboard |
| title | No | |
| content | No | Markdown body (collapsed in outline mode); absent for a dashboard |
| comments | No | Present only when includeComments is true |
| databaseId | No | |
| properties | No | Database-row properties (rows only) |
| recurrence | No | Present when this row is one occurrence of a repeating series: seriesId, occurrenceDate, detached, rule, occurrences |
| fullContentChars | No | Full body size in chars (outline mode) — gauge whether a "full" fetch is worth it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description doesn't need to restate safety. It goes beyond by explaining the type auto-detection, the dashboard spec behavior, and the definition of outline mode. This adds helpful behavioral context.
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 concise and front-loads the primary function. The mode explanation is efficiently included, and the guidance on using outline as a skim is optimized for agent decision-making.
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 output schema exists, the description needn't explain return values. It covers the key nuances (type auto-detection, dashboard behavior, outline mode) that an agent needs to invoke correctly. It doesn't mention pagination or rate limits, but these are minor given the tool's simplicity and read-only nature.
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 covers all three parameters with descriptions for pageId and includeComments, and mode has an enum. The description clarifies the 'outline' option and what it returns, adding some value beyond the schema. However, most parameter semantics are already in the schema, so a 3 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?
The description clearly states the tool reads various resource types by id, auto-detects type, and returns a dashboard as its block spec. It names specific resources (page, database row, dashboard) and distinguishes from siblings that list or search.
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 clear guidance on when to use 'outline' mode as a cheap skim before a full read, and mentions the map shows body sizes. It doesn't explicitly exclude alternatives like query_database or get_pages, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pagesARead-onlyInspect
Read several pages/rows by id in one call, for a known, possibly mixed id list. A bad id fails only its own entry — check each "ok". For rows of one database use query_database with filters/fields instead: one query, not N lookups.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | As in get_page | full |
| pageIds | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description doesn't need to repeat that. It adds valuable behavioral detail: 'A bad id fails only its own entry — check each "ok"', which discloses partial failure semantics not present in annotations. No contradiction.
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 waste. The core purpose is front-loaded, followed by the alternative and a failure-behavior note. Every clause 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?
Given the tool's complexity (batch read, partial failure) and the presence of an output schema, the description covers the essential points: what it does, when to use an alternative, and failure handling. The 50-item limit is in the schema, so no need to repeat. Nothing critical is missing.
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% (mode has a description, pageIds does not). The description clarifies that pageIds are ids and can be mixed, adding context beyond the schema. However, it does not elaborate on the mode parameter or its effect, leaving some semantics to the schema reference ('As in get_page').
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 states a specific action ('Read several pages/rows by id in one call') with a clear resource and scope. It distinguishes itself from get_page (single) and query_database (filtered) by emphasizing batch retrieval for a known, mixed id 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?
Explicitly names the alternative (query_database) and gives the condition for when to use it instead ('For rows of one database use query_database with filters/fields instead: one query, not N lookups'). This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusARead-onlyInspect
This connection's state: workspace, scope, token expiry and renewal. Call it when Remnus tools are missing, a write is refused or a call fails with 401.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| server | Yes | |
| renewal | Yes | |
| expiresAt | Yes | ISO time; null = never expires |
| workspace | Yes | |
| connection | Yes | |
| serverTime | Yes | |
| contextPolicy | Yes | manual | smart | strict |
| expiresInSeconds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely new context by framing the tool as a diagnostic for auth/permission failures. It does not, however, resolve whether 'renewal' means the call reports renewal state or performs a renewal, which is the one behavior an agent might act on.
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, zero filler. The return-value list is front-loaded and the call conditions follow immediately, so the agent gets scope and trigger in one read.
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?
An output schema exists, so return values need not be explained, making the description's field list a bonus rather than a requirement. The only residual gap is the ambiguity of 'renewal' — an agent cannot tell from the text whether calling this can refresh an expired token or only reports on it.
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 takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The description adds no parameter detail, but none is needed.
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?
Names a specific resource (this connection's state) and enumerates exactly what is returned: workspace, scope, token expiry and renewal. That field list distinguishes it cleanly from the data-oriented siblings (query_database, get_pages, list_members), none of which report connection health.
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?
Gives three concrete, observable triggers: Remnus tools missing, a write refused, or a 401 failure. An agent that hits any of these symptoms knows immediately to call this tool rather than guessing at recovery options, which is stronger routing guidance than most sibling definitions provide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_membersARead-onlyInspect
Workspace members with roles and join dates.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| members | Yes | Oldest first |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds minor context by naming the returned fields (roles and join dates), but does not discuss pagination, workspace scope, output size, or any other behavioral trait. This is adequate but not rich.
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 compact sentence that conveys resource and content without wasted words. It is appropriately minimal for a no-parameter list operation and front-loads the essential information.
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, no-parameter, read-only listing with an output schema available, the description covers the core information an agent needs: what is being listed and what fields are included. It is slightly incomplete only in that it does not state scope or when to choose this over a sibling 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?
The tool has zero parameters, so the description cannot and need not add parameter-level meaning. The schema coverage is effectively complete because there is nothing to document. The baseline of 4 for a no-parameter tool applies.
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 names the resource ('Workspace members') and the key returned attributes ('roles and join dates'), making the tool's purpose immediately understandable. It lacks an explicit verb and does not explicitly contrast against siblings like list_workspace or search_workspace, so it stops short of a 5.
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 given for when to use list_members versus alternatives such as search_workspace or list_workspace. There is no mention of intended use cases, exclusions, or conditions that would route an agent to a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspaceARead-onlyInspect
List sidebar items (pages and databases), optionally under one parent; paginated. For orientation the workspace digest/map is cheaper.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | nextCursor from the previous page | |
| parentId | No | Omit for root items |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| hasMore | Yes | |
| nextCursor | No | Pass back as cursor to continue |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds behavioral context by noting that results are paginated and can be scoped under one parent, but it does not go deeper into cursor mechanics, limits, or ordering. This meets the baseline given the annotation coverage.
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 with no filler. The main capability is front-loaded, pagination and parent scoping are included, and the cheaper alternative is appended without disrupting the primary message.
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 read-only listing tool with three optional parameters and an output schema, the description covers what is listed, optional scoping, pagination, and a cost-saving alternative. Nothing essential is missing for an agent to decide whether to call it.
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 67%, with parentId and cursor already documented. The description reinforces that parentId is optional ('optionally under one parent') and that pagination exists, but it does not illuminate the limit parameter or cursor semantics beyond what the schema provides. It is adequate but not additive enough to score higher.
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 states a specific verb ('List'), a specific resource ('sidebar items'), and the item kinds ('pages and databases'), and notes the optional parent scoping. This clearly distinguishes it from siblings like get_pages or search_workspace by anchoring the operation to the workspace sidebar.
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 explicitly mentions a cheaper alternative ('workspace digest/map') and the condition under which it is preferable ('For orientation'). It does not enumerate exclusions versus every sibling, but the main alternative guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_contextARead-onlyInspect
Build a task-specific, token-budgeted context pack from the most relevant pages: lexical rank, human-reviewed knowledge preferred, stale/deprecated concepts penalized, plus the top hits' link neighbors. Use it before multi-page product or coding work instead of many search/get_page calls.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | The concrete task or question | |
| keywords | No | Synonyms, and the workspace's language (e.g. English terms for a Turkish task) | |
| maxTokens | No | Budget for the returned JSON, approx. tokens | |
| maxConcepts | No | ||
| trustPolicy | No | prefer-human-reviewed | |
| includeRelated | No | Add title/id refs from the top concepts' link neighborhoods |
Output Schema
| Name | Required | Description |
|---|---|---|
| task | Yes | |
| policy | Yes | |
| profile | Yes | |
| related | Yes | |
| concepts | Yes | |
| handling | Yes | |
| warnings | Yes | |
| expiresAt | No | |
| retrieval | Yes | |
| truncated | Yes | |
| budgetTokens | Yes | |
| contextRunId | No | |
| estimatedTokens | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, and the description adds meaningful non-obvious behavior: lexical ranking, preference for human-reviewed knowledge, penalization of stale/deprecated concepts, and inclusion of link neighbors. This goes beyond the annotation surface and explains selection logic without contradicting the read-only hint.
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 dense sentences with no filler. The behavioral core is front-loaded, and the usage guidance is delivered in a small, focused second sentence.
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 rich input schema, output schema, and annotations, the description covers purpose, selection behavior, usage timing, and alternatives. An agent has enough to decide when to invoke it and roughly what to expect without missing critical operational 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 coverage is 67%, so the schema does substantial work, but the description adds semantic color: 'lexical rank' clarifies how task/keywords drive relevance, 'human-reviewed knowledge preferred' maps to trustPolicy, and 'top hits' link neighbors' explains includeRelated. Only maxConcepts lacks any meaningful description, so the description partially compensates for the uncovered parameter.
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 ('Build') and resource ('task-specific, token-budgeted context pack') and clearly differentiates the tool from siblings like search_workspace and get_page by describing a composite, page-synthesizing operation. This is immediately distinct from simple retrieval 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?
The description explicitly states when to use it: 'before multi-page product or coding work' and contrasts it with 'instead of many search/get_page calls'. This gives an agent direct routing guidance with a concrete alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_audit_logARead-onlyInspect
Agent activity log for this workspace, filterable by tool, status and date range.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ISO 8601 | |
| from | No | ISO 8601 | |
| tool | No | Tool name | |
| limit | No | ||
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| entries | Yes | Newest first |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds context by noting the log is workspace-scoped and filterable by tool, status, and date range, which is useful but not deeply behavioral. No contradiction with annotations.
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 communicates the resource scope and key filtering capabilities without excess. Every part adds useful information.
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?
The description is sufficient for selecting and invoking this low-complexity tool: it names the workspace scope and filter dimensions, and the output schema and input schema cover the remaining details. Limit is not mentioned, but its default and role are apparent from the schema.
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 60%, so the schema carries much of the parameter explanation. The description adds a helpful mapping by naming 'tool, status and date range,' aligning with tool, status, to, and from, but it does not clarify limit or provide deeper parameter semantics.
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 identifies the resource as the 'Agent activity log for this workspace' and conveys that it is queryable via filtering. It does not explicitly contrast with sibling tools, but the subject matter is distinct enough from query_database and search_workspace to be understood.
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: use it when you need an agent activity log for the workspace. It mentions filter dimensions but provides no explicit guidance on when to prefer an alternative tool or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_databaseARead-onlyInspect
Rows (and the matching schema) of a database, paginated. Row bodies are NOT included unless "content" is in fields. Use filters to narrow and fields to project only the columns you need — much cheaper on wide tables.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | nextCursor from the previous page | |
| fields | No | Column ids or names (case-insensitive); title is always included. Add "content" for row bodies. | |
| filters | No | By property value, e.g. {"status": "Done"} or {"col_xxx": ["Tag1"]} | |
| databaseId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | Yes | Rows carry `recurring: true` when they belong to a repeating series — call get_page for the rule before changing its rhythm |
| schema | No | Column schema (trimmed when projecting with fields) |
| hasMore | No | |
| nextCursor | No | Pass back as cursor to continue |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only. The description adds meaningful behavioral context: pagination, that row bodies are omitted unless 'content' is in fields, and that using filters/fields is cheaper on wide tables. These go beyond the annotations and help an agent predict behavior and resource usage.
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 fluff. The first sentence states the core function and pagination; the second delivers actionable guidance on filters and fields. It is front-loaded and every word contributes.
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 complexity (5 params, nested filters, output schema), the description covers the key behaviors: returns rows and schema, pagination, filtering, projection, content inclusion, and cost implication. It does not detail cursor usage, but the schema and output schema likely fill that gap. It is complete enough for an agent to call it correctly.
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 covers about 60% of parameters (cursor, fields, filters have descriptions). The description reinforces the purpose of filters and fields, and explains the special 'content' value for fields. It does not add detail for limit or databaseId, but the moderate schema coverage means the description partially compensates without being fully comprehensive.
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 states a specific verb and resource: 'Rows (and the matching schema) of a database, paginated.' It clearly identifies the tool's function and distinguishes it from schema-only or page-oriented siblings, though it does not explicitly name any sibling. The purpose is clear but could be sharper about when this tool is the right choice over alternatives.
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?
It gives usage guidance: 'Use filters to narrow and fields to project only the columns you need — much cheaper on wide tables.' This implies when to use it (for querying with filtering/projection) and hints at cost. However, it does not explicitly say when not to use it or mention alternatives like get_database_schema or get_pages, leaving the choice partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_workspaceARead-onlyInspect
Case- and accent-insensitive search over titles and bodies of pages, databases and rows, best matches first. Use it to locate an item by text when the workspace map does not already give you its id.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | Matching items |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description doesn't need to state read-only nature. It adds valuable behavioral details: case- and accent-insensitivity and ordering by best matches. These go beyond the schema and annotations, though it does not mention pagination or output structure (covered by output schema).
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, front-loaded with the main purpose and usage condition, no fluff or redundancy. Every word contributes to understanding the tool.
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?
The tool is simple with only 2 parameters and an output schema, so the description covers the core purpose and usage well. However, the missing explanation of 'limit' is a notable gap, though minor given the schema provides a default and the output schema handles return 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?
Schema description coverage is 0%, so the description must compensate. It implicitly covers 'query' by describing text search, but the 'limit' parameter is entirely absent. The description does not explain what limit controls or its default behavior, leaving the agent to infer from the schema alone, which is inadequate.
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's function: case- and accent-insensitive search over titles and bodies of pages, databases, and rows, with best matches first. It names specific resources and a specific verb, distinguishing it from siblings like get_page or list_workspace by its search semantics.
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 gives a clear usage condition: 'Use it to locate an item by text when the workspace map does not already give you its id.' This implies when not to use it (when you have the id) and provides context for when search is appropriate, though it does not explicitly name an alternative tool.
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.
1 tool update
- Added
get_status
Related MCP Connectors
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Hosted Notion MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
MCP-native collaborative markdown editor with real-time AI document editing
Related MCP Servers
- AlicenseAqualityCmaintenanceFull-featured Notion MCP server enabling deep page reading, block editing, snapshot/restore, file uploads, table manipulation, page restore, and destructive page copying.3331 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceComprehensive MCP server for the Notion API. Provides 22 tools for full CRUD operations on pages, databases, blocks, users, and comments.4 npmMIT
- AlicenseNot gradedqualityDmaintenanceMCP server for the Notion API, enabling management of pages, blocks, databases, data sources, comments, and users through natural language.5 npm3MIT
- AlicenseBqualityBmaintenanceA lightweight MCP server for Notion that enables natural language management of pages, databases, and blocks through the current Notion API.12MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.