verbatim-mcp
Integrates with OpenAI Codex to search papers, ask research questions with verbatim citations, get paper metadata, export BibTeX citations, and browse collections from Verbatim's document collections.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@verbatim-mcpfind papers on attention mechanisms from 2020"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Verbatim MCP Server
An MCP (Model Context Protocol) server for Verbatim — a platform of specialized document collections that returns verbatim, cited answers. ACL Anthology is the default collection; pass collection_ids=[...] to scope to a different collection or query multiple.
Features
Search papers by keywords, authors, venues, and years
Ask research questions and get answers with verbatim citations
Get paper metadata and full content
Export citations in BibTeX format
Browse collections, authors, venues, and years
Collection-aware — all tools accept an optional
collection_idslist (default["anthology"])
Related MCP server: Semantic Scholar MCP Server
Quick Start
Step 1: Get an API Key
Go to verbatim.krlabs.eu
Sign up / Log in
Navigate to API Keys
Create a new API key and copy it
Step 2: Set up the MCP server
Choose the setup that matches your environment:
Setup for Claude Code (CLI)
Option A: Using uvx (no install needed, requires uv)
claude mcp add verbatim --transport stdio \
-e VERBATIM_API_KEY=vb_your_key_here \
-- uvx verbatim-mcpOption B: Using pip (works everywhere)
pip install verbatim-mcp
claude mcp add verbatim --transport stdio \
-e VERBATIM_API_KEY=vb_your_key_here \
-- verbatim-mcpOption C: Config file
Add to ~/.claude.json or your project's .mcp.json:
{
"mcpServers": {
"verbatim": {
"type": "stdio",
"command": "verbatim-mcp",
"args": [],
"env": {
"VERBATIM_API_KEY": "vb_your_key_here"
}
}
}
}Then restart Claude Code or run /mcp to verify.
Setup for Claude Desktop App
Edit your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"verbatim": {
"command": "uvx",
"args": ["verbatim-mcp"],
"env": {
"VERBATIM_API_KEY": "vb_your_key_here"
}
}
}
}Restart Claude Desktop. You should see "verbatim" in the tools menu (hammer icon).
Setup for OpenAI Codex
Option A: Via CLI
codex mcp add verbatim \
-e VERBATIM_API_KEY=vb_your_key_here \
-- uvx verbatim-mcpOption B: Via config file
Edit ~/.codex/config.toml:
[mcp_servers.verbatim]
command = "uvx"
args = ["verbatim-mcp"]
[mcp_servers.verbatim.env]
VERBATIM_API_KEY = "vb_your_key_here"Then restart Codex or run /mcp to verify.
Setup for Cursor / VS Code with Continue
For Cursor or Continue.dev extension, add to your config:
{
"mcpServers": {
"verbatim": {
"command": "uvx",
"args": ["verbatim-mcp"],
"env": {
"VERBATIM_API_KEY": "vb_your_key_here"
}
}
}
}Verify It's Working
In Claude Code, run:
/mcpYou should see verbatim listed with its tools.
Try asking Claude:
"Use verbatim to search for papers about attention mechanisms"
Available Tools
Every collection-aware tool accepts an optional collection_ids: list[str] parameter (default ["anthology"]). verbatim_transform is collection-agnostic — you supply the context.
Tool | Description |
| List collections available to your API key |
| Get metadata for a single collection |
| Ask a research question, get an answer with citations |
| Turn any question + context into a verbatim cited answer (no collection) |
| Search papers by keywords and filters. Pass |
| Get metadata for a specific paper |
| Get full text of a paper |
| Get BibTeX citation |
| Search authors by name |
| Browse publication venues |
| Browse proceedings/booktitles |
| List available publication years |
Example Prompts
Once configured, try these with Claude:
"Search for papers about transformer efficiency from 2023"
"What does the research say about attention mechanisms?"
"Find papers by Ashish Vaswani"
"Get the BibTeX citation for that paper"
"List the top venues in the corpus"
Environment Variables
Variable | Description | Default |
| Your API key (required) | - |
| API base URL |
|
Troubleshooting
"Failed to reconnect to verbatim"
If using
uvx, make sure uv is installed:curl -LsSf https://astral.sh/uv/install.sh | shAlternatively, use pip instead:
pip install verbatim-mcpand replaceuvx verbatim-mcpwith justverbatim-mcpin your config
"VERBATIM_API_KEY environment variable is required"
Make sure you added the
-eflag orenvblock with your API key
Server not showing in /mcp
Restart Claude Code:
claude(exit and reopen)Check config syntax:
claude mcp list
"API error (401): Unauthorized"
Your API key is invalid or expired
Generate a new one at verbatim.krlabs.eu/api-keys
"API error (429): Rate limit"
You've exceeded your query limit
Check usage at verbatim.krlabs.eu/api-keys
Compatibility
MCP (Model Context Protocol) is supported by:
Claude Code (CLI) -
~/.claude.jsonClaude Desktop App -
claude_desktop_config.jsonOpenAI Codex -
~/.codex/config.tomlCursor - built-in MCP support
Continue.dev - VS Code/JetBrains extension
License
MIT License - see LICENSE for details.
Links
Verbatim - The RAG service
MCP Documentation - Learn about MCP
Claude Code - Claude's coding assistant
Available Tools
12 toolsget_citationC
Get BibTeX citation for a paper.
collection_ids defaults to ['anthology'].
| Name | Required | Description | Default |
|---|---|---|---|
| paper_id | Yes | ||
| collection_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only notes a default value for collection_ids, but lacks disclosure of side effects, idempotency, or other behavioral traits.
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?
Very brief but lacks structured sections; the single sentence is efficient but could be better organized.
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?
Incomplete for a tool with 2 parameters and no output schema; missing return format, error cases, and details about paper_id validation.
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%; the description adds minimal value by stating the default for collection_ids, but paper_id lacks any explanation.
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 verb 'get' and resource 'BibTeX citation for a paper', but does not differentiate from sibling tools like get_paper or get_paper_content.
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 on when to use this tool versus alternatives; lacks any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_collectionC
Get metadata for a single collection by id.
| Name | Required | Description | Default |
|---|---|---|---|
| collection_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'Get metadata', implying read-only, but lacks details on idempotency, side effects, required permissions, or error behavior.
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 concise sentence with no wasted words. It is appropriately front-loaded but could be slightly more informative without loss of conciseness.
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 no output schema and only one parameter, the description should provide context on return value, parameter format, or error conditions. It fails to do so, leaving the agent with minimal information.
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%, and the description adds no meaning beyond the parameter name 'collection_id'. The phrase 'by id' restates what is obvious from 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 clearly specifies the verb 'Get' and the resource 'metadata for a single collection by id', distinguishing it from sibling tools like list_collections (which lists collections) and other get tools for different entities.
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 on when to use this tool versus alternatives. The description does not mention when not to use it or provide context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_paperC
Get paper metadata by id.
collection_ids defaults to ['anthology'].
| Name | Required | Description | Default |
|---|---|---|---|
| paper_id | Yes | ||
| collection_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only mentions a default value, omitting aspects like read-only nature, error handling, or side effects.
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 short and front-loaded, but it could be more concise by integrating the default note without adding extra sentences.
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 no output schema and no annotations, the description fails to specify what 'metadata' includes, response format, or error conditions.
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 description must compensate. It clarifies collection_ids defaults to ['anthology'] (contradicting schema default of null), but paper_id is not elaborated.
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 'Get paper metadata by id' with a specific verb and resource. However, it does not differentiate from siblings like 'get_paper_content' or 'get_citation', which could cause confusion.
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 on when to use this tool versus alternatives (e.g., search_papers). The note on default collection_ids is useful but does not address usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_paper_contentC
Get full paper content (markdown) by id.
collection_ids defaults to ['anthology'].
| Name | Required | Description | Default |
|---|---|---|---|
| paper_id | Yes | ||
| collection_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behaviors. It mentions returning markdown and a default value for collection_ids, but omits critical traits like auth requirements, rate limits, or whether it mutates state. The description is insufficient for safe invocation.
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 (two sentences) and front-loaded with the main action. However, it lacks structure and could be more informative without being verbose. Adequate but not exceptional.
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 simplicity of the tool (2 params, no output schema) and the sibling list, the description is too sparse. It does not explain what the markdown content includes, error handling, or how it differs from get_paper. The agent would need to infer or test.
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 description must explain parameters. It only mentions collection_ids defaults to ['anthology'] but does not clarify the purpose of paper_id or the meaning of collection_ids beyond a default. This leaves the agent guessing.
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 it retrieves full paper content in markdown format by ID, distinguishing it from siblings like get_paper (likely metadata-only) and get_citation. However, it does not explicitly differentiate from similar tools, so not 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 on when to use this tool versus alternatives like get_paper or search_papers. The description only states what it does, not the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_authorsB
Search authors by name (fuzzy, typo-tolerant). Per-collection counts.
collection_ids defaults to ['anthology']. Facets are returned for the first collection only (counts are per-collection).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| collection_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses key behaviors: fuzzy search, per-collection counts, default collection, and facet limitation. However, it does not mention read-only nature, rate limits, or any side effects, which is acceptable for a simple search but could be improved.
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 only two sentences, front-loaded with the core purpose. Every word adds value. The second sentence is slightly dense but packs important constraints. No unnecessary fluff.
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 absence of an output schema, the description should clarify the return structure (e.g., list of authors, each with count). It mentions 'per-collection counts' but does not specify the format. Pagination behavior (limit parameter) is not addressed. The tool's completeness for an agent is inadequate.
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 explain parameters. It only indirectly describes collection_ids (default and behavior) and implies query is used for name search. The 'limit' parameter and exact query format are not explained, failing to compensate for the schema's lack of descriptions.
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 it searches authors by name with fuzzy/typo-tolerant matching. It is distinct from sibling tools (no other author-specific tool), but it does not explicitly mention the return format (list of authors with counts), leaving slight ambiguity.
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 provides context on defaults (collection_ids defaults to ['anthology']) and a behavioral caveat (facets only for first collection), which guides usage. However, it does not explicitly state when to use this tool versus alternatives like search_papers or list_collections.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_booktitlesC
Search booktitles (fuzzy). Per-collection counts.
collection_ids defaults to ['anthology'].
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| collection_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially compensates by disclosing fuzzy search behavior and default collection_ids. However, it does not explain pagination, result format, or any side effects. The coverage 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 very brief (three lines) with no wasted words. Each phrase adds value: the action, the feature, and a default. It is front-loaded and efficient.
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 three parameters and no output schema, the description lacks details on the output (e.g., returned fields, sorting) and does not fully explain parameters. The tool's basic function is clear, but essential context for an agent to use it correctly 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 coverage is 0%, and the description only explains the default for collection_ids. The 'query' and 'limit' parameters are not described. 'fuzzy' is mentioned but not elaborated, leaving ambiguity about how the query string is used.
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 'Search booktitles (fuzzy)' with a clear verb and resource, and adds the distinctive feature of per-collection counts. It differentiates from sibling list tools like list_authors or list_collections by focusing on book titles with fuzzy matching.
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 on when to use this tool versus alternatives like search_papers or list_collections. The description only mentions a default for collection_ids, but not the appropriate scenarios for each sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_collectionsA
List collections available to this API key.
Returns a list of collection metadata (id, name, description, record_count,
visibility, status). Use the collection id with the other tools' collection_ids
parameter to scope queries.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description details the returned fields (id, name, description, record_count, visibility, status), offering transparent behavioral disclosure. It could mention ordering or limits but is generally sufficient.
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: first states purpose, second adds output details and usage guidance. No wasted words, front-loaded.
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 no output schema and zero parameters, the description explains the return values adequately. Could note ordering or pagination but not required for completeness.
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 has no parameters, so the description naturally adds no parameter details. Baseline 4 applies since no additional parameter semantics are 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?
The description clearly states the verb 'List' and the resource 'collections', and distinguishes from sibling tools like get_collection which returns a single collection.
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 explains that the returned collection IDs should be used with other tools' collection_ids parameter, providing clear context for usage, though it does not explicitly state 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.
list_venuesC
Search venues/conferences (fuzzy). Per-collection counts.
collection_ids defaults to ['anthology'].
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| collection_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions fuzzy search and per-collection counts, but fails to indicate whether the operation is read-only, requires authentication, or has side effects.
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 very concise with two sentences. It front-loads the main purpose and includes a key default. However, it could be better structured with bullet points or clearer separation.
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 three parameters and no output schema, the description is too minimal. It does not cover return format, pagination, error handling, or how results are ordered, which are important for a search 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?
Schema description coverage is 0%, and the description only adds the default for collection_ids. It does not explain the meaning of 'query' or 'limit' beyond their names, leaving the agent with insufficient understanding.
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 searches venues/conferences with fuzzy matching, and mentions per-collection counts. It distinguishes from sibling tools like search_papers and list_collections by specifying the resource type.
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 provides a default for collection_ids but gives no guidance on when to use this tool versus siblings. It lacks context for appropriate use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_yearsB
List publication years available in the collection with paper counts.
collection_ids defaults to ['anthology'].
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| collection_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions a default value for collection_ids but does not disclose other behavioral traits such as performance, side effects, or required permissions. The operation seems read-only but is not explicitly stated.
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 extremely concise with two sentences, front-loading the purpose. Every sentence adds value, and there is no unnecessary 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?
Given the lack of output schema and annotations, the description is somewhat sparse. It does not cover return format, pagination, error handling, or other constraints that would help an agent use the tool robustly.
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%, but the description adds meaning for the collection_ids parameter by stating its default value ('anthology'). It does not explain the limit parameter or provide deeper semantics for collection_ids, leaving some ambiguity.
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 purpose: 'List publication years available in the collection with paper counts.' It uses a specific verb ('list') and resource ('publication years'), and distinguishes from sibling tools like list_authors and list_venues by focusing on years and counts.
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 context (listing available years and counts) but does not provide explicit guidance on when to use this tool versus alternatives like search_papers. No when-not-to-use or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_ragB
Run a RAG query against the paper corpus.
Args: question: The research question to answer. filter: Optional Milvus filter expression. Examples: - 'metadata["year"] == 2023' (papers from 2023) - 'metadata["year"] >= 2020 and metadata["year"] <= 2024' - 'json_contains(metadata["venue"], "acl")' (venue is stored as array) - 'json_contains(metadata["authors"], "John Smith")' (authors is stored as array) collection_ids: Collections to query. Defaults to ['anthology']. Pass multiple for cross-collection RAG (results will be retrieved from all named collections).
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| question | Yes | ||
| collection_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. However, it does not specify what the tool returns (e.g., text chunks, metadata), nor does it mention whether the operation is read-only or has side effects. The description focuses on parameters but lacks output behavior.
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 structured with an Args section and is reasonably concise. However, the filter examples, though helpful, add length. Overall, it is well-organized and front-loaded with the tool's primary action.
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 lack of annotations and output schema, the description adequately covers parameters but misses key completeness aspects: it does not describe the return format, any usage limitations, or when to avoid using this tool. Sibling differentiation is absent, reducing contextual completeness.
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 description adds significant meaning beyond the input schema, which has 0% coverage. It explains each parameter clearly, including default values and practical filter examples for Milvus expressions. The collection_ids parameter is well-described with cross-collection behavior noted.
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 purpose as running a RAG query against a paper corpus with specific parameters. However, it does not explicitly differentiate from sibling tools like search_papers, which may also involve querying papers but likely without RAG 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 provides no guidance on when to use this tool versus alternatives. While filter examples are given, there is no mention of scenarios where search_papers or other tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_papersA
Search papers by query (and optional year).
Args:
query: Search string.
year: Optional year filter.
limit: Maximum results to return.
collection_ids: Collections to search. Defaults to ['anthology']. Pass multiple
for cross-collection searches (when other collections are available).
include_chunks: When True, each result includes the retrieved chunks that
contributed to its match in matched_chunks (list of {text, score}).
Useful for feeding evidence directly into a local extractor or
downstream summarizer. Free — no LLM, no quota cost.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| limit | No | ||
| query | Yes | ||
| collection_ids | No | ||
| include_chunks | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It clearly explains the behavior of include_chunks (returns matched_chunks list of {text, score}) and notes it is free with no quota cost. It covers parameter defaults and optionality, but does not mention any side effects or error handling.
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 front-loaded with the main purpose, then uses a clear Args list. It is efficient but includes extraneous detail for include_chunks that could be shortened. Still, every sentence adds value.
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?
With 5 parameters and no output schema, the description covers parameters well but lacks explicit return format for basic results (e.g., list of paper objects). The include_chunks detail is complete, but the overall output structure is assumed from 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 description coverage is 0%, but the description explains all 5 parameters (query, year, limit, collection_ids, include_chunks) with defaults and additional context (e.g., collection_ids default to ['anthology'], include_chunks output structure and cost). This fully compensates for the missing schema descriptions.
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 'Search papers by query (and optional year).' It uses a specific verb ('Search') and resource ('papers'), and distinguishes from sibling tools like get_paper (retrieve single paper) and query_rag (likely RAG-based).
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 provides usage context for collection_ids (default anthologist, cross-collection) and include_chunks (useful for extractors). However, it does not explicitly compare to sibling tools like query_rag or state when this tool should be preferred over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verbatim_transformA
Turn any question + context documents into a verbatim answer with exact citations.
Collection-agnostic — works with any text you provide.
Args: question: The question to answer. context: List of documents. Each dict should have: - content (required): the text to cite from - title (optional): document title - source (optional): URL or reference - metadata (optional): any additional metadata
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | ||
| question | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It mentions producing a 'verbatim answer with exact citations' but fails to specify whether the tool modifies data, requires permissions, or has side effects. The output structure and behavior under error conditions are not described.
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 well-structured, starting with a clear purpose statement, then a summary line, followed by formatted parameter descriptions. Every sentence adds value without redundancy.
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 has no output schema, and the description does not detail the return format beyond 'verbatim answer with exact citations'. Given the complexity of the output (likely structured with citations), this omission leaves gaps. However, it adequately covers input semantics.
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 description adds significant value beyond the bare input schema. It explains that 'question' is the query to answer, and 'context' is a list of documents with required 'content' and optional 'title', 'source', and 'metadata'. This meaningfully compensates for the 0% schema coverage.
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 purpose: transforming a question and context documents into a verbatim answer with exact citations. It distinguishes itself from siblings like query_rag (semantic search) and get_citation (retrieval), indicating a unique function.
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 explains that the tool is 'collection-agnostic' and works with any text, providing clear usage context. However, it does not explicitly state when not to use it or suggest alternatives beyond implicit differentiation from sibling tool names.
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. Dates show when Glama detected each change.
12 tool updates
v0.4.0- First observed
get_citation - First observed
get_collection - First observed
get_paper - First observed
get_paper_content - First observed
list_authors - First observed
list_booktitles - First observed
list_collections - First observed
list_venues - First observed
list_years - First observed
query_rag - First observed
search_papers - First observed
verbatim_transform
TDQS
Every tool has a clearly distinct purpose: get citation, get collection, get paper, get paper content, list authors/booktitles/collections/venues/years, search, RAG, and transform. No overlapping functionalities that would confuse an agent.
All tools follow a consistent verb_noun pattern in snake_case (get_, list_, search_, query_, verbatim_transform). Even verbatim_transform fits as 'transform' with a server-specific prefix.
12 tools is well-scoped for a scholarly paper API. It covers retrieval, search, and a unique RAG/transform capability without bloat or deficiency.
The tool surface is complete for a read-only paper corpus: citation, metadata, full content, search with options, RAG, and a citation-generating transform. No obvious missing operations for the stated domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search arXiv and ACL Anthology, retrieve citations and references, and browse web sources to accel…
Academic paper search, scientific literature, citation analysis, arXiv & semantic related-work.
Search 340M+ academic papers — citation graphs, semantic similarity, and AI literature reviews.
Search a billion+ documents — papers, books, code, legal cases, forums, Wikipedia, and more.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables searching, fetching, and analyzing scientific papers from ArXiv, ACL Anthology, Semantic Scholar, and Hugging Face datasets, with optional LLM-powered document QA and research proposal workflows.91Apache 2.0
- AlicenseAqualityAmaintenanceProvides direct access to 200M+ academic papers from Semantic Scholar, enabling paper search with advanced filters, author discovery, citation analysis, and AI-powered paper recommendations through natural language.1415MIT
- AlicenseBqualityFmaintenanceSearch and retrieve academic papers from arXiv and DBLP databases, with AI-powered prompts to generate comprehensive research summaries, discover related topics, and identify leading authors in any field.22MIT
- AlicenseAqualityCmaintenanceSearches and retrieves academic papers from open access sources like arXiv, Semantic Scholar, and PubMed, with full text access via arXiv PDFs, PubMed Central, and Unpaywall.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/KRLabsOrg/verbatim-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server