A demonstration server integrating Couchbase Agent Memory with MCP tools, LangChain, and web search capabilities for agent-based chat with memory persistence
Five tools with reasonable naming (verb_noun pattern) and documented descriptions (100-200 chars typical). All tools have input schemas with typed parameters and descriptions. However, output schemas are not documented in the visible code, parameter descriptions lack constraint details (ranges, enums, formats), and error handling guidance is absent. Tools follow single-responsibility principle but lack idempotency markers and recovery hints. No tool annotations (readOnlyHint/destructiveHint) visible despite clear risk levels (READ_ONLY vs WRITE).
Add completed user/assistant chat turns to the current Couchbase Agent Memory session. The application normally calls this automatically after producing a response.
List recent memories from the current session or all sessions, formatted for easy review.
Semantically search the user's stored memories for relevant facts, preferences, or prior conversation context. Use this whenever the answer may depend on something the user told you earlier rather than asking them to repeat themselves.
Persist one or more durable facts about the user to long-term memory so they can be recalled in future conversations. Store preferences, stable traits, and important episodic facts; do not store trivial or temporary details.
Search the web with Tavily for current, recent, or time-sensitive information that may not be in the model's training data.
Output schemas not documented. Tools return data but LLMs cannot infer response structure (fields, types, pagination). Forces agents to guess what data is available.
Parameter constraints missing. 'limit' in list_memories has min/max (1-200) but no description of what happens at boundaries. 'query' strings lack length/format guidance. No enums for categorical inputs.
No error handling guidance. Tools declare risk levels (READ_ONLY, WRITE) but provide no recovery hints. If search_memory returns empty, should agent retry with broader query or ask user? If store_memory fails, is it retryable?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Tool annotations absent. Risk levels (READ_ONLY, WRITE) are declared in metadata but not exposed as readOnlyHint/destructiveHint/idempotentHint in schema. Agents cannot infer safety properties.
Idempotency unclear. add_working_memory accepts message arrays but no deduplication strategy documented. Retrying with same messages risks duplicates in session history.