Conversational Glossary Manager — MCP server for managing SKOS/JSON-LD glossaries
Glossary-agent has 20 well-named tools with consistent verb_noun patterns (set_branch, get_branch, create_term, etc.). All tools have descriptions (10 - 200 chars, within baseline 194 avg). Input schemas are present and typed for all tools. However, output schemas are NOT documented, responses are JSON strings without declared field structures. Error handling is minimal; most tools return JSON status objects but lack recovery guidance. Parameter descriptions are adequate but lack format constraints (e.g., no enum for 'relationship' type, no regex for branch names). No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Composition is strong, tools chain well (set_branch → create_term → push_branch → open_pr). Missing: pagination for list_terms/find_terms, per-item error reporting for batch operations, and explicit output schema documentation.
Abort an in-progress merge and return the branch to its pre-merge state.
Check open PRs for conflicts with main. Works from any branch — if you're back on main after submitting a PR, this will find the open PR and report which terms conflict. Call set_branch to return to the feature branch, then use get_conflict and resolve_conflict to fix each one.
Create a new glossary term with a name, definition, and optional metadata.
Delete a term from the glossary. First call with confirmed=false to see a summary of what will be deleted. Then call again with confirmed=true to proceed.
Search for terms by name or definition.
Complete a merge after all conflicts have been resolved.
Output schemas not documented. Tools return JSON strings (e.g., {"status": "ok", "established_branch": ...}) but no schema declares expected fields, types, or structure. LLMs cannot plan downstream calls or extract data reliably.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are marked with Risk levels (READ_ONLY, WRITE, DESTRUCTIVE) in comments but not exposed to the MCP protocol. Agents cannot infer safety properties.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Return the current established branch and git status for this glossary session.
Retrieve the details of a conflicting term during a merge.
List all relationships for a term.
Retrieve full details of a single term.
List all terms in the glossary, optionally filtered by domain.
Open a pull request from the established branch. Call push_branch first if you haven't already pushed the current work. Requires the gh CLI to be installed and authenticated.
Push the established branch to the remote (origin). Call this when the user is ready to share their work or open a PR. Safe to call multiple times — subsequent pushes update the remote branch.
Create a relationship between two terms.
Reload the glossary from disk (after a git merge or external changes).
Remove a relationship between two terms.
Rename a term and update all references to it.
Resolve a conflicted term by choosing which version to keep or merging fields.
Establish the working branch for this glossary session. Checks out an existing branch or creates a new one. Must be called before any write operations when event_backend is 'git'. Fails if the repo has uncommitted changes.
Update a single field on an existing term.
relate_terms and remove_relationship accept 'relationship' as free-form string. No enum constraint. Valid values are 'broader', 'narrower', 'related', 'is part of', 'exactly the same as', LLMs will hallucinate invalid values.
list_terms and find_terms lack pagination. No limit, offset, or cursor parameters. Returning all terms in a large glossary will exhaust context window. Baseline pattern requires pagination with limit and total count.
Error responses lack recovery guidance. Most tools return {"status": "error", "message": "..."} but do not tell the LLM what to do next (retry, ask user, call another tool). Baseline requires actionable error classification.