read_content
Read a public piece by slug. Locked pieces return a hint pointing at request_access.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
Read a public piece by slug. Locked pieces return a hint pointing at request_access.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It does disclose a key behavior: locked pieces return a hint pointing to request_access, which is valuable. However, it does not mention error behavior, authentication requirements, or what exactly is returned (full content vs. metadata), leaving some gaps.
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 sentences, front-loaded with the main action. The second sentence adds essential edge-case behavior (locked pieces) without redundancy. Every word earns its place, and it is appropriately sized for a simple 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?
For a tool with a single required parameter, no output schema, and a clear primary purpose, the description is largely complete. It covers the normal path (public piece) and the special case (locked piece). It does not specify response format or behavior when the slug is invalid, but these are minor gaps 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 only defines 'slug' as a string with no description. The description compensates by explaining that the slug identifies a piece of content: 'Read a public piece by slug.' This clarifies the parameter's purpose, though it does not detail slug format or examples.
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+resource: 'Read a public piece by slug.' This clearly distinguishes it from siblings like list_content (which lists content) and verify_content (which likely verifies). The addition of 'public' and the locked-piece behavior further clarify 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 when to use this tool: when you need to read a specific public piece identified by a slug. It also provides a guide for locked pieces by pointing to request_access as an alternative. However, it does not explicitly contrast with siblings like list_content or mention prerequisites beyond having a slug.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Most tools have clearly distinct purposes with detailed descriptions, but a few boundaries are fuzzy: leave_message vs ask_human vs leave_comment, and list_content vs list_collection could confuse an agent at first glance. Overall, the descriptions are thorough enough to disambiguate.
The naming convention is predominantly snake_case with verb_noun structure (list_content, read_blob, upsert_skill). Minor deviations exist such as the mysloodsiewnia_* prefix and British spelling in synthesise_persona_patterns, but the pattern is highly recognizable and readable.
At 41 tools, the surface area is very large for a single MCP server and exceeds the 'heavy' threshold. While each tool serves a distinct purpose, the sheer number makes the server feel bloated and harder to navigate; many tools could be grouped or pruned without losing core functionality.
The server covers a broad domain: content read/list, personas, skills management, vault CRUD (except update/delete intentionally), provenance, licensing, memory, and async question/narada workflows. Minor gaps exist like no tool to cancel a narada job or update a memory, but these are workable and the core workflows are well supported.