Search Context
search_contextFull-text search across souls. Returns matching lines only (token-efficient).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| soul | No | Specific soul (optional, searches all if omitted) | |
| query | Yes | Text to search for |
search_contextFull-text search across souls. Returns matching lines only (token-efficient).
| Name | Required | Description | Default |
|---|---|---|---|
| soul | No | Specific soul (optional, searches all if omitted) | |
| query | Yes | Text to search for |
Changes observed during successful MCP inspections.
Output schema / (root)Previous value: -{
- "properties": {
- "content": {
- "items": {
- "properties": {
- "text": {
- "description": "Human-readable tool result.",
- "type": "string"
- },
- "type": {
- "const": "text",
- "type": "string"
- }
- },
- "required": [
- "type",
- "text"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "isError": {
- "description": "True when the tool failed.",
- "type": "boolean"
- }
- },
- "required": [
- "content",
- "isError"
- ],
- "type": "object"
-}New value: +nullOutput schema / (root)Previous value: -nullNew value: +{
+ "properties": {
+ "content": {
+ "items": {
+ "properties": {
+ "text": {
+ "description": "Human-readable tool result.",
+ "type": "string"
+ },
+ "type": {
+ "const": "text",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "text"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "isError": {
+ "description": "True when the tool failed.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "content",
+ "isError"
+ ],
+ "type": "object"
+}Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation read-only, idempotent, and non-destructive, and the description is consistent with that. It adds useful behavior beyond annotations by revealing that results are line-only and token-efficient.
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 compact sentences carry all the essential information, with the primary action front-loaded. Every phrase earns its place, and there is no redundant or filler content.
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 schema, annotations, and description together provide a solid operational picture: what is searched, what is returned, and that the operation is safe. Minor details such as pagination, result limits, or case sensitivity are absent, but they are optional rather than critical.
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 both parameters thoroughly, with 100% coverage. The tool description does not add new parameter-level semantics, so it stays at the schema-driven baseline.
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 opens with 'Full-text search across souls', a specific verb and resource that is instantly clear. The next sentence, 'Returns matching lines only', distinguishes it from sibling tools like search_by_tag or get_soul by declaring its result shape.
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 establishes a clear use case: full-text content search across souls, with a token-efficient return option. It does not explicitly name alternatives or say when not to use it, but the context is specific enough for an agent to infer the intended invocation scenarios.
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.