Jina AI Remote MCP Server
OfficialThe Jina AI Remote MCP Server provides a comprehensive suite of tools for web content processing, search operations, and semantic analysis using Jina AI's APIs. Key capabilities include:
• Web Content Processing: Extract clean markdown from web pages and capture high-quality screenshots • Multi-Domain Search: Search the web, academic papers on arXiv, and images with filtering and localization options • Query Optimization: Expand and rewrite search queries for improved results • Document Analysis: Rerank documents by relevance to specific queries • Semantic Deduplication: Identify top-k unique strings or images from lists • Contextual Information: Access current session details like time, location, and network environment • Debugging Support: Return API key information for troubleshooting
Provides search capabilities for academic papers and preprints on the arXiv repository through the search_arxiv tool.
Supports deployment of the MCP server to Cloudflare Workers for remote hosting and access.
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., "@Jina AI Remote MCP Serversearch the web for latest developments in quantum computing"
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.
Jina AI Remote MCP Server
A remote Model Context Protocol (MCP) server that provides access to Jina Reader, Embeddings and Reranker APIs with a suite of URL-to-markdown, web search, image search, and embeddings/reranker tools:
Tool | Description | Is Jina API Key Required? |
| Get current contextual information for localized, time-aware responses | No |
| Extract clean, structured content from web pages as markdown via Reader API | Optional* |
| Capture high-quality screenshots of web pages via Reader API | Optional* |
| Analyze web pages for last update/publish datetime with confidence scores | No |
| Search the entire web for current information and news via Reader API | Yes |
| Search the web, read each result page via Reader API, then score every passage against the query in one listwise Reranker API call ( | Yes |
| Search academic papers and preprints on arXiv repository via Reader API | Yes |
| Search academic papers on SSRN (Social Science Research Network) via Reader API | Yes |
| Search for images across the web (similar to Google Images) via Reader API | Yes |
| Search Jina AI news and blog posts at jina.ai/news | No |
| Search for academic papers and return BibTeX citations (DBLP + Semantic Scholar) | No |
| Expand and rewrite search queries based on the query expansion model via Reader API | Yes |
| Read multiple web pages in parallel for efficient content extraction via Reader API | Optional* |
| Run multiple web searches in parallel for comprehensive topic coverage and diverse perspectives via Reader API | Yes |
| Run multiple arXiv searches in parallel for comprehensive research coverage and diverse academic angles via Reader API | Yes |
| Run multiple SSRN searches in parallel for comprehensive social science research coverage via Reader API | Yes |
| Rerank documents by relevance to a query via Reranker API | Yes |
| Classify texts into user-defined labels via Embeddings API | Yes |
| Get top-k semantically unique strings via Embeddings API and submodular optimization | Yes |
| Get top-k semantically unique images via Embeddings API and submodular optimization | Yes |
| Extract figures, tables, and equations from PDF documents (arXiv papers or any PDF URL) using layout detection | Yes |
Optional tools work without an API key but have rate limits. For higher rate limits and better performance, use a Jina API key. You can get a free Jina API key from https://jina.ai
Usage
Some clients do not support env variable, so you may need to replace${JINA_API_KEY} below to a hardcoded real API key jina_xxx.
The server usesStreamable HTTP transport (MCP spec 2025-03-26). The /sse endpoint is kept as an alias for backward compatibility. See FAQ for details.
For client that supports remote MCP server:
{
"mcpServers": {
"jina-mcp-server": {
"url": "https://mcp.jina.ai/v1",
"headers": {
"Authorization": "Bearer ${JINA_API_KEY}" // optional
}
}
}
}For client that does not support remote MCP server yet, you need mcp-remote a local proxy to connect to the remote MCP server.
{
"mcpServers": {
"jina-mcp-server": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.jina.ai/v1",
"--header",
"Authorization: Bearer ${JINA_API_KEY}"
]
}
}
}For Claude Code:
Upgrading from /sse? If you previously added with --transport sse, remove it first with claude mcp remove -s user jina, then re-add using the command below.
claude mcp add -s user --transport http jina https://mcp.jina.ai/v1 \
--header "Authorization: Bearer ${JINA_API_KEY}"For OpenAI Codex: find ~/.codex/config.toml and add the following:
[mcp_servers.jina-mcp-server]
command = "npx"
args = [
"-y",
"mcp-remote",
"https://mcp.jina.ai/v1",
"--header",
"Authorization: Bearer ${JINA_API_KEY}"]Related MCP server: Jina AI Remote MCP Server
Tool Filtering before Registering
Every MCP tool requires the LLM to pre-allocate tokens in its context window for the tool's name, description, and schema. For LLMs with limited context windows, registering all 22 tools can consume significant space before any actual work begins.
By filtering tools server-side via query parameters on the endpoint URL (/v1?...), excluded tools are never registered with the MCP client. The client and LLM never see them, saving context window for what matters.
Query Parameters
Parameter | Description | Example |
| Comma-separated tool names to exclude |
|
| Comma-separated tool names to include |
|
| Comma-separated tags to exclude |
|
| Comma-separated tags to include |
|
| Cap |
|
Available Tags
Tag | Tools |
| search_web, search_web_deep, search_arxiv, search_ssrn, search_images, search_jina_blog, search_bibtex |
| parallel_search_web, parallel_search_arxiv, parallel_search_ssrn, parallel_read_url |
| read_url, parallel_read_url, capture_screenshot_url |
| primer, show_api_key, expand_query, guess_datetime_url, extract_pdf |
| sort_by_relevance, classify_text, deduplicate_strings, deduplicate_images |
Precedence
Filters are applied in this order (highest to lowest priority):
exclude_tools- Always excludes specified toolsexclude_tags- Excludes tools in specified tagsinclude_tools- Includes specified toolsinclude_tags- Starts with only tools in specified tags
Examples
Exclude parallel tools (saves ~4 tools worth of context tokens):
{
"mcpServers": {
"jina-mcp-server": {
"url": "https://mcp.jina.ai/v1?exclude_tags=parallel",
"headers": {
"Authorization": "Bearer ${JINA_API_KEY}"
}
}
}
}Only include search and read tools:
{
"mcpServers": {
"jina-mcp-server": {
"url": "https://mcp.jina.ai/v1?include_tags=search,read",
"headers": {
"Authorization": "Bearer ${JINA_API_KEY}"
}
}
}
}Exclude specific tools:
{
"mcpServers": {
"jina-mcp-server": {
"url": "https://mcp.jina.ai/v1?exclude_tools=search_images,deduplicate_images",
"headers": {
"Authorization": "Bearer ${JINA_API_KEY}"
}
}
}
}Troubleshooting
I got stuck in a tool calling loop - what happened?
This is a common issue with LMStudio when the default context window is 4096 and you're using a thinking model like gpt-oss-120b or qwen3-4b-thinking. As the thinking and tool calling continue, once you hit the context window limit, the AI starts losing track of the beginning of the task. That's how it gets trapped in this rolling context window.
The solution is to load the model with enough context length to contain the full tool calling chain and thought process.

I can't see all tools.
Some MCP clients have local caching and do not actively update tool definitions. If you're not seeing all the available tools or if tools seem outdated, you may need to remove and re-add the jina-mcp-server to your MCP client configuration. This will force the client to refresh its cached tool definitions. In LMStudio, you can click the refresh button to load new tools.

Claude Desktop says "Server disconnected" on Windows
Cursor and Claude Desktop (Windows) have a bug where spaces inside args aren't escaped when it invokes npx, which ends up mangling these values. You can work around it using:
{
// rest of config...
"args": [
"mcp-remote",
"https://mcp.jina.ai/v1",
"--header",
"Authorization:${AUTH_HEADER}" // note no spaces around ':'
],
"env": {
"AUTH_HEADER": "Bearer <JINA_API_KEY>" // spaces OK in env vars
}
},Cursor shows a red dot on this MCP status
Likely a UI bug from Cursor, but the MCP works correctly without any problem. You can toggle off/on to "restart" the MCP if you find the red dot annoying (fact is, since you are using this as a remote MCP, it's not a real "server restart" but mostly a local proxy restart).

My LLM never uses some tools
Assuming all tools are enabled in your MCP client but LLM still never uses some tools or favors some over others, this is pretty common when an LLM is trained with a specific set of tools. For example, we rarely see parallel_* tools being used organically by LLMs unless they are explicitly instructed to do so. Some research says LLMs must be trained to use parallel_*. Models like Qwen3-Next natively prefer to call the singleton version but with multiple queries in an array to achieve parallelism (which our MCP also support now). Either way, in Cursor, you can add the following rule to your .mdc file:
---
alwaysApply: true
---
When you are uncertain about knowledge, or the user doubts your answer, always use Jina MCP tools to search and read best practices and latest information. Use search_arxiv and read_url together when questions relate to theoretical deep learning or algorithm details. Use search_ssrn for social sciences, economics, law, and finance research. search_web, search_arxiv, and search_ssrn cannot be used alone - always combine with read_url or parallel_read_url to read from multiple sources. Remember: every search must be complemented with read_url to read the source URL content. For maximum efficiency, use parallel_* versions of search and read when necessary.Why is my content truncated?
Claude Code, Claude Desktop, and Cursor enforce a fixed 25k token limit on MCP tool responses. To stop these clients from rejecting a large response outright, this server applies a token guardrail to read_url and parallel_read_url.
Items are kept whole in their original order while they fit. The first item that does not fit is cut to a prefix that does, and anything after it is dropped. A short [jina-mcp] ... note is appended saying what was truncated or omitted, so the model knows it is looking at a partial document rather than a complete one. At least one item always survives, even if that item alone is over budget.
The server deliberately aims under the limit rather than exactly at it. It has to: the server counts tokens with cl100k while the client counts with its own tokenizer, the cut is a proportional character estimate, and the client measures the serialized JSON payload rather than the raw text. On top of the token budget the server therefore enforces a hard ceiling of 3 bytes per allowed token, which holds regardless of tokenizer for both ASCII prose (~3.6 bytes/token) and CJK (~3 bytes/token). A rejected response delivers nothing, so erring low is the cheaper mistake.
Any client can set its own budget with max_tokens on the endpoint URL (for example https://mcp.jina.ai/v1?max_tokens=50000), and max_tokens=0 disables truncation entirely. Clients with configurable limits, such as OpenAI Codex (tool_output_token_limit), are otherwise left alone.
Using parallel tools vs singleton tools with arrays
Claude Code recently started preferring parallel_* tools (like parallel_search_web, parallel_read_url) for concurrent operations. However, models like Qwen3-Next prefer calling singleton tools with multiple queries in an array. Both approaches work: the singleton versions (search_web, search_arxiv, search_ssrn, read_url) accept either a single string or an array of strings for the query/url parameter. When given an array, these tools automatically execute all queries in parallel internally, producing the same concurrent behavior as explicitly calling parallel_* tools. Use whichever style your model prefers. Arrays are capped at 5 entries, the same limit the parallel_* tools enforce.
Why is the endpoint called /sse but using Streamable HTTP?
The /sse endpoint URL is kept for backward compatibility with existing users. The recommended endpoint is now /v1. Both use the same Streamable HTTP transport (the new MCP standard from spec 2025-03-26), not the deprecated SSE transport.
This works seamlessly because:
Claude Desktop, Cursor, Windsurf use
mcp-remotewhich defaults tohttp-firststrategy (tries Streamable HTTP first)Claude Code has native support for both transports
LM Studio supports direct connection to Streamable HTTP endpoints
The response streaming still uses SSE format (Content-Type: text/event-stream), but the protocol layer (session management, initialization) follows Streamable HTTP spec. All major MCP clients are compatible.
Client-side tool filtering with mcp-remote
If you're using mcp-remote as a local proxy, you can also filter tools client-side using its --ignore-tool flag:
{
"mcpServers": {
"jina-mcp-server": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.jina.ai/v1",
"--header",
"Authorization: Bearer ${JINA_API_KEY}",
"--ignore-tool", "parallel_search_web",
"--ignore-tool", "parallel_search_arxiv",
"--ignore-tool", "parallel_read_url"
]
}
}
}This approach filters tools at the proxy level before they reach the MCP client. However, server-side filtering via query parameters (see Tool Filtering) is more efficient as it reduces token usage from the source.
Reading a page with a question in mind
By default read_url returns the whole page, and the model pays for every token of it to answer one question. Pass question and the page is instead split into passages and scored with Reranker v3.5, and only the top-ranked passages come back — literally the same pipeline search_web_deep runs on its result pages, now available on a URL you already have.
Parameter | Default | Effect |
| (unset) | Unset returns the full page, exactly as before. Set, it returns ranked passages instead of |
|
| Target passage size, counted in words (characters for CJK). Not a token count — 100 words is roughly 130-150 tokens of English. Passages only split at sentence boundaries, so this is a target, not a hard cut. Larger keeps more surrounding context, smaller pinpoints the answer. |
|
| Number of passages returned, best first. |
All three are optional and question gates the other two, so existing calls are byte-for-byte unchanged.
// full page: 13,713 bytes, 233 ms
{ "url": "https://jina.ai/news/what-late-chunking-really-is-and-what-its-not-part-ii/" }
// one passage: 756 bytes (5.5%), 569 ms
{ "url": "https://jina.ai/news/what-late-chunking-really-is-and-what-its-not-part-ii/",
"question": "Which embedding models support late chunking?", "topk": 2 }A question-grounded response carries question, snippets and snippet_source: content, and omits content. When extraction cannot run — an empty page, an unreadable one, or no API key to rank with — the full body is returned with snippet_source: full_content and a note saying so, rather than a prefix masquerading as a ranked answer.
Three things worth knowing before tuning:
The score doubles as a confidence signal. Asking a page a question it does not answer scores an order of magnitude lower than a genuine hit (measured: 0.02 against 0.51–0.81). A low top score means "this page does not say", not "ranking failed".
Code blocks and tables are stripped before ranking. The chunker removes them along with nav furniture, which is what stops boilerplate from winning on lexical overlap. The trade-off is that install commands and spec tables are not eligible passages, so "how do I install X" is a weak fit for this parameter.
Latency is roughly double a plain read, since the passage extraction runs alongside the fetch and adds a rerank call.
parallel_read_urlraises its own timeout floor to 60s when any entry has aquestion.
What is the difference between search_web and search_web_deep?
search_web returns the snippet the search engine picked — around 20 words, often a keyword-bearing fragment that never answers the question. search_web_deep also reads each page via Reader, splits it into ~100-word passages at sentence boundaries, and scores every passage from every page in one listwise Reranker call, so any page's passage can outrank any other's. snippet_source=auto (the default) enters each page's engine snippet as one more candidate and the snippet_source field on each result says which won; content never enters it and omits pages it could not read, so it may return fewer than num.
Top 5 per mode from the live server. Snippets keep their start and end, middle replaced by (...n chars...) so length stays visible:
English — what is the latest model from jina ai
# |
|
|
|
1 | jina.ai/modelsWe've been moving the needle in search | elastic.co/search-labs/blog/on-p…All 28 Jina AI models available, | jina.aiTech blog Bootstrapping Audio |
2 | jina.aiJina models natively inside Elasticsearc | jina.ai/embeddingsjina-embeddings-v4 is our latest | jina.ai/embeddingsarXiv July 20, 2026 jina-reranker-v3.5: |
3 | huggingface.co/jinaaiJina AI: Embeddings, Rerankers and | huggingface.co/jinaaiJina AI: Embeddings, Rerankers and | huggingface.co/jinaaiRecent Activity florian-hoenickeupdated |
4 | jina.ai/embeddingsjina-embeddings-v4 is our latest | jina.aiTech blog Bootstrapping Audio | cloud.google.com/blog/products/a…Jina Reader isn't just another scraper; |
5 | elastic.co/search-labs/blog/on-p…All 28 Jina AI models available, | newrelic.com/instant-observabili…Early issue detection: Detect and | jina.ai/modelswarning calendar\month 2023-06-17 The |
Chinese — jina ai 最新的模型是什么
# |
|
|
|
1 | jina.ai/zh-TW/about-usJina AI 由肖涵博士於2020年創建,是一家領先的搜索AI 公司。我們專注開發向量模型、重排器、Reader和小型語言模型,幫助企業和開發者構建強大的搜索 | ithome.com.tw/news/159507Jina AI最新第二代文字嵌入模型jina-embeddings-v2,已可處 | ithome.com.tw/news/159507Jina AI最新第二代文字嵌入模型jina-embeddings-v2,已可處 |
2 | jina.ai/zh-TW/news/jina-reader-f…Grounding 技術對GenAI 應用程式來說至關重要。我們全新的https | jina.ai/zh-CN/embeddings两者都与 v5-text 完全兼容——无需重新索引。 v5-text:最新最先进 | jina.ai/zh-CN/embeddings两者都与 v5-text 完全兼容——无需重新索引。 v5-text:最新最先进 |
3 | elastic.co/cn/jina-search-models什么是Jina 搜索模型? Jina 模型是开源的、前沿的检索AI | elastic.co/cn/jina-search-models您可以从 semantic_text 开始,或访问各模型子页面,查看代码示例、A | elastic.co/cn/jina-search-models您可以从 semantic_text 开始,或访问各模型子页面,查看代码示例、A |
4 | milvus.io/docs/zh-hant/embed-wit…Jina AI. Jina AI 的嵌入模型是高性能的文字嵌入模型,可以將文字輸入轉換為數字表示,捕捉文字的語義。這些模型在密集檢索、語義文字相似性和多語言理解等應用中表現 | milvus.io/docs/zh-hant/embed-wit…Jina AI’s embedding models are | jina.ai/zh-TW/about-us我們專注開發向量模型、重排器、Reader和小型語言模型,幫助企業和開發者構建強 |
5 | jina.ai/zh-CN/embeddingsv5-omni:一个向量,涵盖所有模态 文本、图像、音频、视频——共享同一个向量 | jina.ai/zh-TW/about-usJina AI 由肖涵博士於2020年創建,是一家領先的搜索AI 公司。我們專注開發向量模型、重排器、Reader和小型語言模型,幫助企業和開發者構建強大的 | jina.ai/zh-TW/news/jina-reader-f…因為阻止企業向數百萬用戶部署 LLMs 的主要障礙是信任度:答案是真實的,還是僅 |
The engine snippet is sometimes the better answer. The top three English
autoresults came back asserp— short, and the first answers the query more directly than any extracted passage, whilecontentpromotes jina.ai homepage navigation instead. Preferautounless something downstream needs full passages.The reranker scores relevance, not freshness. Both Chinese deep runs rank a 2023
jina-embeddings-v2article first for a query asking which model is latest. Bound the window withtbs, or check each result'sdate.Passages are not uniformly ~100 words. Navigation-heavy pages lack the sentence punctuation to split on, so the first two English
contentresults run to ~2,000 characters — the per-passage ceiling.
Developer Guide
Local Development
# Clone the repository
git clone https://github.com/jina-ai/MCP.git
cd MCP
# Install dependencies
npm install
# Start development server
npm run startDeploy to Cloudflare Workers
This will deploy your MCP server to a URL like: jina-mcp-server.<your-account>.workers.dev/v1
Available Tools
19 toolscapture_screenshot_urlA
Capture high-quality screenshots of web pages in base64 encoded JPEG format. Use this tool when you need to visually inspect a website, take a snapshot for analysis, or show users what a webpage looks like.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The complete HTTP/HTTPS URL of the webpage to capture (e.g., 'https://example.com') | |
| firstScreenOnly | No | Set to true for a single screen capture (faster), false for full page capture including content below the fold | |
| return_url | No | Set to true to return screenshot URLs instead of downloading images as base64 |
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 of behavioral disclosure. It mentions the output format (base64 JPEG) and general use cases but lacks details on potential behavioral traits like rate limits, authentication needs, error conditions, or performance implications (e.g., timeouts for slow-loading pages). The description is functional but insufficient for a mutation-like tool (capturing external resources) without annotation support.
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 with two sentences: the first states the core functionality and output format, and the second provides usage guidelines. Every sentence adds value without redundancy, making it easy to parse and front-loaded with essential 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 complexity of a screenshot tool (involving external web interactions) and the absence of both annotations and an output schema, the description is moderately complete. It covers purpose and usage but lacks details on behavioral aspects like error handling or output specifics (e.g., what the base64 string or URL looks like). This leaves gaps that could hinder effective tool invocation by an AI agent.
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 100%, so the schema fully documents all three parameters (url, firstScreenOnly, return_url) with clear descriptions. The description adds no additional parameter semantics beyond what's in the schema, but this is acceptable given the high coverage, resulting in a baseline score of 3.
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 with specific verbs ('capture high-quality screenshots') and resources ('web pages'), specifying the output format ('base64 encoded JPEG format'). It distinguishes itself from sibling tools like 'read_url' or 'search_web' by focusing on visual capture rather than text extraction or searching.
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 clear usage contexts ('visually inspect a website', 'take a snapshot for analysis', 'show users what a webpage looks like'), giving practical scenarios for when to use this tool. However, it doesn't explicitly mention when NOT to use it or name specific alternatives among siblings, such as 'read_url' for text content instead of screenshots.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deduplicate_imagesA
Get top-k semantically unique images (URLs or base64-encoded) using Jina CLIP v2 embeddings and submodular optimization. Use this when you have many visually similar images and want the most diverse subset.
| Name | Required | Description | Default |
|---|---|---|---|
| images | Yes | Array of image inputs to deduplicate. Each item can be either an HTTP(S) URL or a raw base64-encoded image string (without data URI prefix). | |
| k | No | Number of unique images to return. If not provided, automatically finds optimal k by looking at diminishing return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: it's a read-only operation (implied by 'get'), uses semantic analysis via embeddings, and includes optimization logic. However, it lacks details on performance aspects like rate limits or error handling, which would be helpful for a tool with computational complexity.
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 core purpose in the first sentence and usage guidelines in the second. Both sentences earn their place by adding essential information without redundancy, making it efficient and well-structured for quick comprehension.
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 tool's complexity (involving embeddings and optimization) and no output schema, the description is mostly complete. It covers purpose, usage, and high-level behavior, but could benefit from mentioning output format (e.g., returned structure) or limitations to fully compensate for the lack of output schema.
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 100%, so the schema already documents both parameters thoroughly. The description adds minimal value beyond the schema by mentioning 'top-k' and 'semantically unique,' but doesn't provide additional syntax or format details. This meets the baseline for high 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 with specific verbs ('get top-k semantically unique images') and resources ('images (URLs or base64-encoded)'), and distinguishes it from sibling tools by specifying its unique function of deduplication using Jina CLIP v2 embeddings and submodular optimization, unlike other tools like search_images or deduplicate_strings.
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 explicitly states when to use this tool: 'when you have many visually similar images and want the most diverse subset.' This provides clear context and distinguishes it from alternatives like search_images (for finding images) or deduplicate_strings (for text deduplication), making it easy for an agent to select appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deduplicate_stringsA
Get top-k semantically unique strings from a list using Jina embeddings and submodular optimization. Use this when you have many similar strings and want to select the most diverse subset that covers the semantic space. Perfect for removing duplicates, selecting representative samples, or finding diverse content.
| Name | Required | Description | Default |
|---|---|---|---|
| strings | Yes | Array of strings to deduplicate | |
| k | No | Number of unique strings to return. If not provided, automatically finds optimal k by looking at diminishing return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: using Jina embeddings and submodular optimization for semantic deduplication, returning top-k results, and automatically determining optimal k if not provided. However, it doesn't mention performance characteristics like computational complexity or rate limits.
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 perfectly structured and concise: three sentences that each earn their place. The first states the core functionality, the second provides usage guidelines, and the third lists specific applications. No wasted words, front-loaded with essential 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?
For a tool with no annotations and no output schema, the description provides good context about what the tool does and when to use it. However, it doesn't describe the return format or what 'semantically unique' means in practice. Given the complexity of semantic deduplication, more detail about the output would be helpful.
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 100%, so the schema already documents both parameters thoroughly. The description adds some context about the 'k' parameter's automatic optimization behavior, but doesn't provide additional semantic meaning beyond what's in the schema descriptions. This meets the baseline for high 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 with specific verbs ('get top-k semantically unique strings') and resources ('from a list using Jina embeddings and submodular optimization'). It distinguishes itself from siblings like deduplicate_images by focusing on strings rather than images, and from other tools by its semantic deduplication approach.
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 explicitly states when to use this tool ('when you have many similar strings and want to select the most diverse subset that covers the semantic space') and provides three specific use cases ('removing duplicates, selecting representative samples, or finding diverse content'). It differentiates from siblings by not overlapping with their domains (e.g., images, web search).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expand_queryA
Expand and rewrite search queries based on an up-to-date query expansion model. This tool takes an initial query and returns multiple expanded queries that can be used for more diversed and deeper searches. Useful for improving deep research results by searching broader and deeper.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query to expand (e.g., 'machine learning', 'climate change') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the tool 'returns multiple expanded queries' but lacks details on behavioral traits such as rate limits, authentication needs, response format, or potential side effects. For a tool with no annotation coverage, this leaves significant gaps in understanding its operation.
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 appropriately sized and front-loaded, with the core purpose stated first. However, the second sentence could be more concise (e.g., 'diversed' is misspelled as 'diversed'), and some phrasing is slightly redundant, though overall it avoids unnecessary elaboration.
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 tool's moderate complexity (1 parameter, no output schema, no annotations), the description is partially complete. It covers the purpose and usage context but lacks details on behavioral aspects and output format. Without annotations or output schema, more information on what 'multiple expanded queries' entails would improve 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?
Schema description coverage is 100%, with the parameter 'query' well-documented in the schema. The description adds minimal value beyond the schema by implying the query is 'initial' and used for expansion, but does not provide additional syntax, format, or constraints. Baseline 3 is appropriate as the schema handles parameter documentation adequately.
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 with specific verbs ('expand and rewrite search queries') and resource ('search queries'), distinguishing it from sibling tools like search_web or search_arxiv by focusing on query expansion rather than direct searching. It explicitly mentions using 'an up-to-date query expansion model' for transformation.
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 clear context for when to use the tool ('useful for improving deep research results by searching broader and deeper'), but does not explicitly state when not to use it or name specific alternatives among siblings. It implies usage for enhancing search effectiveness without direct exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_pdfA
Extract figures, tables, and equations from PDF documents using layout detection. Perfect for extracting visual elements from academic papers on arXiv or any PDF URL. Returns base64-encoded images of detected elements with metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | arXiv paper ID (e.g., '2301.12345' or 'hep-th/9901001'). Either id or url is required. | |
| url | No | Direct PDF URL. Either id or url is required. | |
| max_edge | No | Maximum edge size for extracted images in pixels (default: 1024) | |
| type | No | Filter by float types (comma-separated): figure, table, equation. If not specified, returns all types. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the core functionality and output format ('Returns base64-encoded images of detected elements with metadata'), but lacks details about error conditions, rate limits, authentication requirements, or what happens with malformed PDFs. The description adds value but leaves behavioral 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 perfectly front-loaded with the core purpose in the first clause, followed by usage context and output details. Every sentence earns its place with zero wasted words, making it highly efficient and scannable.
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 tool's moderate complexity (4 parameters, no output schema, no annotations), the description covers the core purpose and output format adequately but lacks details about error handling, performance characteristics, or limitations. It's complete enough for basic understanding but leaves operational questions unanswered.
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 100%, so the schema already fully documents all 4 parameters. The description mentions 'arXiv paper ID' and 'PDF URL' which aligns with the schema, but adds no additional parameter semantics beyond what the schema provides. The baseline score of 3 is appropriate when the schema does the heavy lifting.
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 specific action ('extract figures, tables, and equations'), the resource ('PDF documents'), and the method ('using layout detection'). It distinguishes from sibling tools by focusing on PDF content extraction rather than searching, reading, or processing other data types.
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 clear context for when to use this tool ('Perfect for extracting visual elements from academic papers on arXiv or any PDF URL'), but does not explicitly state when not to use it or name specific alternatives among the sibling tools for different PDF-related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
guess_datetime_urlA
Guess the last updated or published datetime of a web page. This tool examines HTTP headers, HTML metadata, Schema.org data, visible dates, JavaScript timestamps, HTML comments, Git information, RSS/Atom feeds, sitemaps, and international date formats to provide the most accurate update time with confidence scores. Returns the best guess timestamp and confidence level.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The complete HTTP/HTTPS URL of the webpage to guess datetime information |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's approach by listing multiple data sources examined (e.g., HTTP headers, HTML metadata) and outputs (timestamp with confidence scores), giving a clear picture of its heuristic and probabilistic nature. However, it lacks details on error handling or performance characteristics.
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 appropriately sized and front-loaded, starting with the core purpose and following with key details on methods and outputs. It avoids redundancy, though it could be slightly more streamlined by combining some of the listed data sources into broader categories.
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 tool's complexity (heuristic datetime guessing) and lack of annotations or output schema, the description does a good job of explaining the process and return values. It covers the input parameter indirectly and outlines the output structure, though it could benefit from more explicit details on confidence score ranges or error cases.
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 100% description coverage, with the 'url' parameter well-documented in the schema itself. The description does not add any additional meaning or constraints beyond what the schema provides, such as URL format examples or validation rules, so it meets the baseline for high 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 specific action ('guess the last updated or published datetime') and resource ('a web page'), distinguishing it from sibling tools like 'read_url' or 'capture_screenshot_url' that focus on different webpage interactions. It specifies the exact temporal information being extracted, making the purpose unambiguous.
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 when temporal metadata about a webpage is needed, but does not explicitly state when to use this tool versus alternatives like 'read_url' (which might return raw content) or 'parallel_search_web' (which might provide search results). No exclusions or prerequisites are mentioned, leaving the context somewhat open-ended.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parallel_read_urlA
Read multiple web pages in parallel to extract clean content efficiently. For best results, provide multiple URLs that you need to extract simultaneously. This is useful for comparing content across multiple sources or gathering information from multiple pages at once.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | Array of URL configurations to read in parallel (maximum 5 URLs for optimal performance) | |
| timeout | No | Timeout in milliseconds for all URL reads |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions efficiency benefits and the parallel nature of the operation, but doesn't disclose important behavioral traits like error handling, rate limits, authentication requirements, or what happens when URLs fail. It mentions 'optimal performance' with max 5 URLs but doesn't explain consequences of exceeding this limit.
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 perfectly concise with three sentences that each earn their place: first states the core functionality, second provides usage guidance, third gives concrete use cases. It's front-loaded with the main purpose and wastes no words while being comprehensive.
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 annotations and no output schema, the description should do more to explain behavioral aspects and expected outputs. While it covers purpose and usage well, it doesn't describe what the tool returns (clean content format, error responses, or structured data from links/images). For a tool with 2 parameters and no annotation coverage, the description is adequate but leaves gaps in behavioral transparency.
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 100%, so the schema already documents both parameters thoroughly. The description adds minimal parameter semantics beyond what's in the schema - it mentions 'multiple URLs' which aligns with the 'urls' parameter, but doesn't provide additional context about parameter usage or relationships beyond what the schema already specifies.
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 with specific verbs ('read multiple web pages in parallel', 'extract clean content efficiently') and distinguishes it from sibling tools like 'read_url' by emphasizing parallel processing and multi-URL capability. It explicitly mentions the resource ('web pages') and the efficiency benefit.
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 explicit guidance on when to use this tool: 'provide multiple URLs that you need to extract simultaneously' and gives concrete use cases ('comparing content across multiple sources', 'gathering information from multiple pages at once'). It distinguishes from single-URL alternatives by emphasizing parallel processing for multiple URLs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parallel_search_arxivA
Run multiple arXiv searches in parallel for comprehensive research coverage and diverse academic angles. For best results, provide multiple search queries that explore different research angles and methodologies. You can use expand_query to help generate diverse queries, or create them yourself.
| Name | Required | Description | Default |
|---|---|---|---|
| searches | Yes | Array of arXiv search configurations to execute in parallel (maximum 5 searches for optimal performance) | |
| timeout | No | Timeout in milliseconds for all searches |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the parallel execution nature and performance optimization ('maximum 5 searches for optimal performance'), which is useful. However, it doesn't disclose important behavioral aspects like rate limits, authentication requirements, error handling, or what the return format looks like (though there's no output schema). The description doesn't contradict any annotations since none exist.
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 efficiently structured in three sentences. The first sentence states the core purpose, the second provides usage guidance, and the third offers a helpful tip about query generation. Every sentence adds value with zero wasted words, making it appropriately front-loaded and concise.
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 tool's moderate complexity (parallel execution of searches) and 100% schema coverage but no annotations or output schema, the description is adequate but has gaps. It explains the parallel nature and provides usage tips, but doesn't cover behavioral aspects like performance characteristics, error handling, or result format. For a tool executing parallel searches without output schema, more context about what to expect would be helpful.
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 100%, so the schema already documents all parameters thoroughly. The description adds minimal parameter semantics beyond the schema - it mentions 'multiple search queries' which aligns with the 'searches' array parameter, but doesn't provide additional context about parameter usage or constraints that aren't already in the schema descriptions. With high schema coverage, baseline 3 is appropriate.
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: 'Run multiple arXiv searches in parallel for comprehensive research coverage and diverse academic angles.' It specifies the verb ('run'), resource ('arXiv searches'), and scope ('in parallel'), distinguishing it from the sibling 'search_arxiv' tool which presumably handles single searches. The description explicitly mentions the parallel execution capability.
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 clear usage context: 'For best results, provide multiple search queries that explore different research angles and methodologies.' It also suggests using 'expand_query' to generate diverse queries. However, it doesn't explicitly state when NOT to use this tool (e.g., for single searches where 'search_arxiv' might be more appropriate) or provide direct alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parallel_search_ssrnA
Run multiple SSRN searches in parallel for comprehensive social science research coverage and diverse academic angles. For best results, provide multiple search queries that explore different research angles and methodologies. You can use expand_query to help generate diverse queries, or create them yourself.
| Name | Required | Description | Default |
|---|---|---|---|
| searches | Yes | Array of SSRN search configurations to execute in parallel (maximum 5 searches for optimal performance) | |
| timeout | No | Timeout in milliseconds for all searches |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it's a search operation (implied read-only), mentions 'optimal performance' with maximum 5 searches (implied rate/performance consideration), and suggests 'best results' with diverse queries. It doesn't explicitly mention authentication needs or rate limits, but provides practical usage context.
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 appropriately sized with three sentences, each earning its place: first states purpose, second provides usage guidance, third mentions alternative approaches. It's front-loaded with the core functionality and wastes no words on redundant 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 no annotations and no output schema, the description does well by covering purpose, usage guidelines, and behavioral context. It could be more complete by explicitly mentioning the read-only nature or expected return format, but for a search tool with good schema coverage, it provides sufficient context for effective use.
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 100%, so the baseline is 3. The description adds some value by explaining the purpose of providing 'multiple search queries' and mentioning 'diverse academic angles,' which gives context for the 'searches' array parameter, but doesn't add significant semantic detail beyond what the schema already documents about individual search parameters.
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 with specific verbs ('run multiple SSRN searches in parallel') and resource ('SSRN searches'), distinguishing it from siblings like 'search_ssrn' by emphasizing parallel execution for comprehensive coverage and diverse academic angles. It explicitly mentions social science research context.
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 explicit guidance on when to use this tool ('for comprehensive social science research coverage and diverse academic angles'), how to use it ('provide multiple search queries'), and mentions an alternative tool ('expand_query') for generating diverse queries. It also suggests creating queries manually as another option.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parallel_search_webA
Run multiple web searches in parallel for comprehensive topic coverage and diverse perspectives. For best results, provide multiple search queries that explore different aspects of your topic. You can use expand_query to help generate diverse queries, or create them yourself.
| Name | Required | Description | Default |
|---|---|---|---|
| searches | Yes | Array of search configurations to execute in parallel (maximum 5 searches for optimal performance) | |
| timeout | No | Timeout in milliseconds for all searches |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'parallel' execution and 'optimal performance' with max 5 searches, which adds useful context beyond the schema. However, it doesn't disclose critical behavioral traits like rate limits, error handling, authentication needs, or what the output looks like (since no output schema exists). The description provides some operational context but leaves significant gaps for a tool that performs multiple external searches.
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 perfectly concise and well-structured: three sentences that each earn their place. The first states the core purpose, the second provides usage guidance, and the third suggests a complementary tool. No wasted words, and the most important information (parallel execution for comprehensive coverage) is 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 the tool's complexity (parallel web searches with multiple configurable parameters) and the absence of both annotations and an output schema, the description is incomplete. While it explains the parallel nature and suggests query diversity, it doesn't address what results look like, how errors are handled, or performance considerations beyond the 5-search limit mentioned in the schema. For a tool with no output schema and no annotations, more behavioral context would be needed for full 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?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. It mentions 'multiple search queries' which aligns with the 'searches' parameter, but provides no additional syntax, format, or semantic details. The baseline score of 3 is appropriate when the schema does all the parameter documentation work.
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: 'Run multiple web searches in parallel for comprehensive topic coverage and diverse perspectives.' It specifies the verb ('run'), resource ('web searches'), and key characteristic ('in parallel'), distinguishing it from sibling tools like 'search_web' (which presumably runs single searches). However, it doesn't explicitly contrast with 'parallel_search_arxiv' or 'parallel_search_ssrn' beyond mentioning 'web' searches.
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 clear context for usage: 'For best results, provide multiple search queries that explore different aspects of your topic.' It also suggests an alternative tool: 'You can use expand_query to help generate diverse queries.' This gives practical guidance on when to use this tool (for parallel searches with diverse queries) and mentions a complementary tool. However, it doesn't explicitly state when NOT to use it (e.g., vs. single 'search_web' for simple queries).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
primerA
Get up-to-date contextual information of the current session to provide localized, time-aware responses. Use this when you need to know the current time, user's location, or network environment to give more relevant and personalized information.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 discloses that the tool retrieves 'up-to-date contextual information' and specifies the types (time, location, network environment), which is useful behavioral context. However, it lacks details on data freshness, privacy implications, or response format, leaving gaps for a tool that handles sensitive session data. This is adequate but not comprehensive.
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 core purpose followed by usage guidance. Every word earns its place: the first sentence defines what the tool does, and the second specifies when to use it. There is no fluff or repetition, making it highly efficient and well-structured.
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 tool's low complexity (0 parameters, no output schema, no annotations), the description is reasonably complete. It covers purpose, usage, and the types of information retrieved. However, without annotations or output schema, it could benefit from more detail on response structure or data sources, slightly limiting completeness for a session-context 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?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing instead on the tool's purpose and usage. This meets the baseline of 4 for zero-parameter tools, as it adds value without redundancy.
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: 'Get up-to-date contextual information of the current session to provide localized, time-aware responses.' It specifies the verb ('get') and resource ('contextual information'), and distinguishes it from sibling tools by focusing on session metadata rather than search, extraction, or processing operations. However, it doesn't explicitly differentiate from all siblings (e.g., 'show_api_key' might also provide session info), keeping it at 4 rather than 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?
The description provides explicit guidance on when to use the tool: 'Use this when you need to know the current time, user's location, or network environment to give more relevant and personalized information.' It clearly defines the triggering context (needing time, location, or network data for personalization) without needing to specify exclusions, as the context is distinct from sibling tools' purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_urlA
Extract and convert web page content to clean, readable markdown format. Perfect for reading articles, documentation, blog posts, or any web content. Use this when you need to analyze text content from websites, bypass paywalls, or get structured data.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The complete URL of the webpage or PDF file to read and convert (e.g., 'https://example.com/article'). Can be a single URL string or an array of URLs for parallel reading. | |
| withAllLinks | No | Set to true to extract and return all hyperlinks found on the page as structured data | |
| withAllImages | No | Set to true to extract and return all images found on the page as structured data |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions capabilities like bypassing paywalls and extracting structured data, which adds useful context beyond basic functionality. However, it lacks details on error handling, rate limits, authentication needs, or performance characteristics that would be important for an agent to use it effectively.
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 appropriately sized and front-loaded, starting with the core purpose. Every sentence adds value, such as use cases and capabilities. It could be slightly more concise by combining some phrases, but overall it avoids redundancy and maintains clarity.
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 tool's complexity (web content extraction with multiple parameters) and no output schema, the description is moderately complete. It covers the purpose and use cases but lacks details on return values, error conditions, or limitations. With no annotations and no output schema, more behavioral context would improve completeness for agent usage.
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 100%, so the schema already documents all parameters thoroughly. The description does not add any parameter-specific information beyond what the schema provides (e.g., it doesn't explain URL formats or the implications of withAllLinks/withAllImages). Baseline 3 is appropriate when the schema does the heavy lifting.
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 with specific verbs ('extract and convert') and resources ('web page content'), distinguishing it from siblings like capture_screenshot_url (visual capture) or extract_pdf (PDF-specific). It explicitly mentions the output format ('clean, readable markdown format'), which helps differentiate its 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 provides clear context for when to use the tool ('when you need to analyze text content from websites, bypass paywalls, or get structured data'), including specific use cases like reading articles or documentation. However, it does not explicitly state when NOT to use it or name alternatives among sibling tools, such as extract_pdf for PDF files or parallel_read_url for batch processing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_arxivA
Search academic papers and preprints on arXiv repository. Perfect for finding research papers, scientific studies, technical papers, and academic literature. Use this when researching scientific topics, looking for papers by specific authors, or finding the latest research in fields like AI, physics, mathematics, computer science, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Academic search terms, author names, or research topics (e.g., 'transformer neural networks', 'Einstein relativity', 'machine learning optimization'). Can be a single query string or an array of queries for parallel search. | |
| num | No | Maximum number of academic papers to return, between 1-100 | |
| tbs | No | Time-based search parameter, e.g., 'qdr:h' for past hour, can be qdr:h, qdr:d, qdr:w, qdr:m, qdr:y |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the tool is 'perfect for finding research papers' and lists use cases, but doesn't disclose behavioral traits like rate limits, authentication needs, pagination behavior, error handling, or what the return format looks like. For a search tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.
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 appropriately sized with two sentences: first states the purpose, second provides usage guidelines. It's front-loaded with the core function and avoids unnecessary repetition. Every sentence adds value, though it could be slightly more concise by integrating the examples more tightly.
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 annotations and no output schema, the description provides good purpose and usage context but lacks behavioral details (e.g., return format, error cases). For a search tool with 3 parameters and 100% schema coverage, it's adequate but has clear gaps in transparency that reduce 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?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain query syntax further or provide examples of tbs values). Baseline 3 is appropriate when the schema does the heavy lifting.
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 academic papers and preprints on arXiv repository, specifying the resource (arXiv repository) and verb (search). It distinguishes from siblings like search_web, search_images, and search_ssrn by focusing specifically on academic/scientific content, making the purpose specific and differentiated.
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 clear context for when to use it: 'when researching scientific topics, looking for papers by specific authors, or finding the latest research in fields like AI, physics, mathematics, computer science, etc.' It doesn't explicitly state when NOT to use it or name alternatives (e.g., parallel_search_arxiv), but the context is sufficiently detailed for informed usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_imagesA
Search for images across the web, similar to Google Images. Use this when you need to find photos, illustrations, diagrams, charts, logos, or any visual content. Perfect for finding images to illustrate concepts, locating specific pictures, or discovering visual resources. Images are returned by default as small base64-encoded JPEG images.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Image search terms describing what you want to find (e.g., 'sunset over mountains', 'vintage car illustration', 'data visualization chart') | |
| return_url | No | Set to true to return image URLs, title, shapes, and other metadata. By default, images are downloaded as base64 and returned as rendered images. | |
| tbs | No | Time-based search parameter, e.g., 'qdr:h' for past hour, can be qdr:h, qdr:d, qdr:w, qdr:m, qdr:y | |
| location | No | Location for search results, e.g., 'London', 'New York', 'Tokyo' | |
| gl | No | Country code, e.g., 'dz' for Algeria | |
| hl | No | Language code, e.g., 'zh-cn' for Simplified Chinese |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the search scope ('across the web'), the default return format ('small base64-encoded JPEG images'), and the alternative return option ('return image URLs, title, shapes, and other metadata'). It doesn't mention rate limits, authentication needs, or pagination behavior, but covers the essential operational characteristics.
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 appropriately sized with three sentences that each serve a distinct purpose: stating the tool's function, providing usage guidelines, and describing return behavior. It's front-loaded with the core purpose and avoids unnecessary repetition. The final sentence about default return format could be slightly more concise.
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 search tool with 6 parameters (1 required), 100% schema coverage, and no output schema, the description provides good contextual completeness. It covers the tool's purpose, usage scenarios, and key behavioral characteristics. The main gap is the lack of information about response format details beyond the base64/URL distinction, but given the schema coverage and tool complexity, this is reasonably complete.
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 100%, so the schema already documents all 6 parameters thoroughly. The description mentions the default return behavior (base64 images vs URLs) which relates to the 'return_url' parameter, but doesn't add significant semantic value beyond what's already in the schema descriptions. This meets the baseline expectation when schema coverage is complete.
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 with specific verbs ('Search for images across the web') and distinguishes it from siblings by specifying it's for visual content like photos, illustrations, diagrams, etc. It explicitly mentions it's 'similar to Google Images' which provides clear context about its 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 provides explicit guidance on when to use this tool: 'Use this when you need to find photos, illustrations, diagrams, charts, logos, or any visual content.' It gives three specific use cases: illustrating concepts, locating specific pictures, or discovering visual resources. This clearly distinguishes it from text-based search siblings like search_web or search_arxiv.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_jina_blogA
Search Jina AI news and blog posts at jina.ai/news for articles about AI, machine learning, neural search, embeddings, and Jina products. Use this to find official Jina documentation, tutorials, product announcements, and technical deep-dives.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search terms to find relevant Jina blog posts (e.g., 'embeddings', 'reranker', 'ColBERT'). Can be a single query string or an array of queries for parallel search. | |
| num | No | Maximum number of blog posts to return, between 1-100 | |
| tbs | No | Time-based search parameter, e.g., 'qdr:h' for past hour, can be qdr:h, qdr:d, qdr:w, qdr:m, qdr:y |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions what content is searched (Jina blog/news), it doesn't describe important behavioral traits: whether results are paginated, what format they return, authentication requirements, rate limits, or error conditions. For a search tool with no annotation coverage, this leaves significant gaps in understanding how the tool behaves.
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 appropriately sized with two sentences that efficiently convey purpose and usage. The first sentence establishes what the tool searches and where, while the second provides use cases. There's minimal redundancy, though the second sentence could be slightly more concise by combining some elements.
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 search tool with 3 parameters, 100% schema coverage, but no annotations and no output schema, the description provides adequate purpose and usage context but lacks behavioral transparency. The description covers what content is searched and use cases, but without annotations or output schema, it should ideally describe result format, pagination, or other behavioral aspects to be more complete.
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 100%, so the schema already fully documents all three parameters. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. It mentions general search terms but doesn't provide additional syntax, format, or usage details for parameters. Baseline 3 is appropriate when schema does the heavy lifting.
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 Jina AI news and blog posts at a specific URL (jina.ai/news), listing specific content types (articles about AI, machine learning, neural search, embeddings, Jina products) and use cases (official documentation, tutorials, product announcements, technical deep-dives). It distinguishes from sibling tools like search_arxiv or search_web by specifying the Jina-specific source and content focus.
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 clear context for when to use this tool: to find Jina-specific content including documentation, tutorials, announcements, and technical articles. It doesn't explicitly state when NOT to use it or name specific alternatives, but the Jina focus implicitly distinguishes it from general web search siblings like search_web.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_ssrnA
Search academic papers and preprints on SSRN (Social Science Research Network). Perfect for finding research papers in social sciences, economics, law, finance, accounting, management, and humanities. Use this when researching social science topics, looking for working papers, or finding the latest research in business and economics fields.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Academic search terms, author names, or research topics (e.g., 'corporate governance', 'behavioral finance', 'contract law'). Can be a single query string or an array of queries for parallel search. | |
| num | No | Maximum number of academic papers to return, between 1-100 | |
| tbs | No | Time-based search parameter, e.g., 'qdr:h' for past hour, can be qdr:h, qdr:d, qdr:w, qdr:m, qdr:y |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While it mentions the platform (SSRN) and subject areas, it doesn't disclose behavioral traits like rate limits, authentication requirements, pagination behavior, error conditions, or what the return format looks like (since no output schema exists). The description adds some context about academic focus but lacks operational transparency.
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 well-structured sentences that efficiently convey purpose and usage guidelines. The first sentence establishes core functionality, the second provides usage context. No wasted words, though it could be slightly more concise by combining some elements.
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 search tool with 3 parameters (100% schema coverage) but no annotations and no output schema, the description provides good purpose and usage context but lacks behavioral transparency about how results are returned, formatted, or limited. The absence of output schema means the description should ideally hint at return structure, which it doesn't.
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 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. Baseline 3 is appropriate when the schema does the heavy lifting, though no additional value is added.
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 specific verb ('Search') and resource ('academic papers and preprints on SSRN'), and distinguishes from siblings by specifying the academic/social sciences focus versus general web search (search_web) or other academic sources (search_arxiv). It explicitly mentions the Social Science Research Network platform.
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 explicit when-to-use guidance: 'Perfect for finding research papers in social sciences, economics, law, finance, accounting, management, and humanities' and 'Use this when researching social science topics, looking for working papers, or finding the latest research in business and economics fields.' It implicitly distinguishes from parallel_search_ssrn by not mentioning parallel capabilities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_webA
Search the entire web for current information, news, articles, and websites. Use this when you need up-to-date information, want to find specific websites, research topics, or get the latest news. Ideal for answering questions about recent events, finding resources, or discovering relevant content.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search terms or keywords to find relevant web content (e.g., 'climate change news 2024', 'best pizza recipe'). Can be a single query string or an array of queries for parallel search. | |
| num | No | Maximum number of search results to return, between 1-100 | |
| tbs | No | Time-based search parameter, e.g., 'qdr:h' for past hour, can be qdr:h, qdr:d, qdr:w, qdr:m, qdr:y | |
| location | No | Location for search results, e.g., 'London', 'New York', 'Tokyo' | |
| gl | No | Country code, e.g., 'dz' for Algeria | |
| hl | No | Language code, e.g., 'zh-cn' for Simplified Chinese |
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 the tool provides 'current information' and 'up-to-date information,' which implies freshness but doesn't disclose rate limits, authentication needs, or result format. The description adds some behavioral context (e.g., 'ideal for answering questions about recent events') but lacks details on pagination, error handling, or performance characteristics.
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 appropriately sized and front-loaded: the first sentence states the core purpose, followed by usage guidelines. Every sentence earns its place by providing specific guidance (e.g., 'Ideal for answering questions about recent events') without redundancy or 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 tool's complexity (6 parameters, no output schema, no annotations), the description is moderately complete. It covers purpose and usage well but lacks details on behavioral traits like rate limits or result structure. Without annotations or output schema, more context on what the tool returns or its limitations would improve 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?
Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain 'query' syntax or 'tbs' usage). With high schema coverage, the baseline is 3, as the description doesn't compensate with additional param semantics.
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: 'Search the entire web for current information, news, articles, and websites.' It specifies the verb ('Search') and resource ('the entire web'), and distinguishes from siblings like search_arxiv, search_ssrn, and search_images by emphasizing web content rather than academic papers or images.
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 explicitly states when to use this tool: 'Use this when you need up-to-date information, want to find specific websites, research topics, or get the latest news.' It provides clear alternatives by naming specific use cases (e.g., 'answering questions about recent events') and implicitly distinguishes from siblings like search_arxiv for academic content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_api_keyC
Return the bearer token from the Authorization header of the MCP settings, which is used to debug.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 states the tool returns a bearer token, which implies a read-only operation, but it doesn't disclose behavioral traits like security implications, rate limits, or whether the token is exposed in logs. The mention of 'debug' hints at a sensitive use case, but details are lacking.
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, clear sentence that states the purpose upfront. It's appropriately sized for a simple tool, though it could be slightly more polished (e.g., 'Returns' instead of 'Return'). Overall, it's efficient with minimal waste.
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 complexity (a tool that returns sensitive authentication data) and no annotations or output schema, the description is incomplete. It doesn't explain the return format, security warnings, or potential side effects, which are crucial for such a tool. The 'debug' context is insufficient for safe usage.
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 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info beyond the schema, but with zero params, the baseline is 4 as it adequately handles the absence of parameters.
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 the tool 'Return[s] the bearer token from the Authorization header of the MCP settings' which specifies the verb ('Return') and resource ('bearer token'), but it's somewhat vague about the exact purpose beyond debugging. It doesn't clearly differentiate from sibling tools, which are unrelated to API key retrieval.
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 mentions 'used to debug', implying a context for usage, but it doesn't provide explicit guidance on when to use this tool versus alternatives or any exclusions. No sibling tools are directly related, so there's minimal comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sort_by_relevanceA
Rerank a list of documents by relevance to a query using Jina Reranker API. Use this when you have multiple documents and want to sort them by how well they match a specific query or topic. Perfect for document retrieval, content filtering, or finding the most relevant information from a collection.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The query or topic to rank documents against (e.g., 'machine learning algorithms', 'climate change solutions') | |
| documents | Yes | Array of document texts to rerank by relevance | |
| top_n | No | Maximum number of top results to return |
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 the tool uses the Jina Reranker API, which implies external service calls and potential rate limits or authentication needs, but does not explicitly disclose these behavioral traits. The description is accurate but lacks details on performance, errors, or output format.
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 appropriately sized and front-loaded, with the first sentence stating the core functionality. Each subsequent sentence adds useful context without redundancy, making it efficient and well-structured with zero waste.
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 tool's moderate complexity (3 parameters, no annotations, no output schema), the description is reasonably complete. It explains what the tool does, when to use it, and the API involved, but could improve by detailing output format or error handling. Without an output schema, some gaps remain in understanding the return values.
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 100%, providing clear descriptions for all three parameters. The description adds minimal value beyond the schema by implying the tool's purpose involves ranking documents against a query, but does not elaborate on parameter usage, constraints, or examples beyond what the schema already states.
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 with specific verbs ('rerank a list of documents by relevance') and resources ('documents'), using the Jina Reranker API. It distinguishes from sibling tools by focusing on document relevance ranking rather than search, extraction, or other operations listed among siblings.
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 clear context for when to use this tool ('when you have multiple documents and want to sort them by how well they match a specific query or topic') and gives examples of use cases ('document retrieval, content filtering, or finding the most relevant information from a collection'). However, it does not explicitly state when not to use it or name specific alternatives among siblings.
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.
9 tool updates
v1.0.0- Added
extract_pdf - Added
parallel_search_ssrn - Changed
primer1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
read_url4 fields changed- added
Input schema / properties / url / anyOfAdded value: +[ + { + "format": "uri", + "type": "string" + }, + { + "items": { + "format": "uri", + "type": "string" + }, + "type": "array" + } +] - changed
Input schema / properties / url / descriptionPrevious value: -"The complete URL of the webpage or PDF file to read and convert (e.g., 'https://example.com/article')"New value: +"The complete URL of the webpage or PDF file to read and convert (e.g., 'https://example.com/article'). Can be a single URL string or an array of URLs for parallel reading." - removed
Input schema / properties / url / formatRemoved value: -"uri" - removed
Input schema / properties / url / typeRemoved value: -"string"
- Changed
search_arxiv3 fields changed- added
Input schema / properties / query / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - changed
Input schema / properties / query / descriptionPrevious value: -"Academic search terms, author names, or research topics (e.g., 'transformer neural networks', 'Einstein relativity', 'machine learning optimization')"New value: +"Academic search terms, author names, or research topics (e.g., 'transformer neural networks', 'Einstein relativity', 'machine learning optimization'). Can be a single query string or an array of queries for parallel search." - removed
Input schema / properties / query / typeRemoved value: -"string"
- Added
search_jina_blog - Added
search_ssrn - Changed
search_web3 fields changed- added
Input schema / properties / query / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - changed
Input schema / properties / query / descriptionPrevious value: -"Search terms or keywords to find relevant web content (e.g., 'climate change news 2024', 'best pizza recipe')"New value: +"Search terms or keywords to find relevant web content (e.g., 'climate change news 2024', 'best pizza recipe'). Can be a single query string or an array of queries for parallel search." - removed
Input schema / properties / query / typeRemoved value: -"string"
- Changed
show_api_key1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
15 tool updates
- First observed
capture_screenshot_url - First observed
deduplicate_images - First observed
deduplicate_strings - First observed
expand_query - First observed
guess_datetime_url - First observed
parallel_read_url - First observed
parallel_search_arxiv - First observed
parallel_search_web - First observed
primer - First observed
read_url - First observed
search_arxiv - First observed
search_images - First observed
search_web - First observed
show_api_key - First observed
sort_by_relevance
TDQS
Most tools have distinct purposes, such as capture_screenshot_url for visual snapshots, read_url for text extraction, and various search tools for different sources. However, there is some overlap between parallel_search_web and search_web, which could cause confusion about when to use parallel vs. single searches, and deduplicate_images and deduplicate_strings share similar semantic deduplication logic but apply to different data types.
Tool names predominantly follow a consistent verb_noun pattern (e.g., capture_screenshot_url, read_url, search_web), with clear and descriptive naming. Minor deviations exist, such as primer and show_api_key, which don't follow the verb_noun convention, but these are exceptions in an otherwise uniform set.
With 19 tools, the count is slightly high but reasonable for a server focused on web and document processing, search, and AI utilities. It covers a broad scope without being excessive, though some tools like parallel_search_arxiv and search_arxiv might be consolidated for efficiency.
The toolset provides comprehensive coverage for web and document processing, including content extraction (read_url, extract_pdf), search across multiple sources (web, arXiv, SSRN), deduplication, query expansion, and relevance sorting. No obvious gaps exist; it supports full workflows from data gathering to analysis and refinement.
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
Jina AI Reader/Search MCP — turn any URL into clean LLM-ready markdown, plus web search.
Read a URL as clean markdown, screenshot a website, url to PDF. Web access for agents, no signup.
Web search, URL content extraction to Markdown, site mapping, and recursive web crawler.
Web search, fetch, extract, and research for AI agents. Markdown output + AI-synthesized answers.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides access to Jina AI's suite of web tools including URL reading, web/image/academic search, content extraction, embeddings, and reranking capabilities. Enables AI assistants to search the web, extract content from URLs, and process information with semantic understanding.19Apache 2.0
- AlicenseNot gradedqualityDmaintenanceProvides access to Jina's web search, content extraction, image search, and AI-powered reranking tools through a comprehensive suite of URL processing and semantic analysis capabilities. Enables users to search the web, extract clean markdown from URLs, capture screenshots, search academic papers, and perform advanced text/image deduplication with embeddings.Apache 2.0
- AlicenseNot gradedqualityNot gradedmaintenanceProvides access to Jina AI's suite of tools including web search, URL reading, image search, embeddings, and reranking capabilities. Enables users to extract web content as markdown, search academic papers, capture screenshots, and perform semantic operations through natural language.-
- AlicenseNot gradedqualityCmaintenanceProvides access to Jina AI's web reading, search, embeddings, and reranking capabilities. Enables URL content extraction, web/arXiv/image search, document deduplication, and relevance ranking through natural language.Apache 2.0
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/jina-ai/MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server