Skip to main content
Glama
MABAAM
by MABAAM

mcp-research

用于网络研究、学术论文、Twitter/X、YouTube 和文件提取的 MCP 服务器。为 AI 助手提供八种工具——全部通过 MCP stdio 协议实现。包含用于机构访问的凭据库、CAPTCHA 检测以及节省 Token 的输出功能。

工具

工具

描述

web_search

3 层搜索级联:Brave API → DuckDuckGo → HTML 抓取器

fetch_url

获取任意 URL → 清理后的 Markdown,具有 SSRF 防护和 24 小时缓存

research

复合流水线:查询重写 → 搜索 → 并行获取 → 摘要 → 综合

youtube_essence

YouTube 视频 → 字幕、摘要、要点、章节、引用

deep_ingest

从文件中提取文本:PDF、DOCX、XLSX、PPTX、音频、视频、图像

academic_lookup

解析 DOI / ArXiv / PubMed → 元数据 + 通过机构访问获取全文

twitter_extract

从 X.com/Twitter 提取推文和推文串

vault_status

显示已加载的凭据配置文件和依赖状态(绝不泄露密钥)

所有工具均为只读——它们仅获取和转换内容,从不进行任何修改。

Related MCP server: The Web MCP

安装

pip install mcp-research

或者直接使用 uvx 运行(无需安装):

uvx mcp-research

可选扩展:

pip install 'mcp-research[twitter]'    # yt-dlp for Twitter extraction
pip install 'mcp-research[youtube]'    # yt-dlp + faster-whisper for YouTube
pip install 'mcp-research[academic]'   # PyPDF2 for academic PDFs
pip install 'mcp-research[ingest]'     # PDF, DOCX, XLSX, PPTX, audio support
pip install 'mcp-research[all]'        # everything

检查您的设置:

mcp-research doctor

与 Claude Code 一起使用

添加到您的 Claude Code MCP 配置(~/.claude/settings.json 或项目 .mcp.json):

{
  "mcpServers": {
    "research": {
      "command": "uvx",
      "args": ["mcp-research"],
      "env": {
        "BRAVE_API_KEY": "BSA...",
        "OLLAMA_URL": "http://localhost:11434"
      }
    }
  }
}

与 Claude Desktop 一起使用

添加到 claude_desktop_config.json

{
  "mcpServers": {
    "research": {
      "command": "uvx",
      "args": ["mcp-research"],
      "env": {
        "BRAVE_API_KEY": "BSA..."
      }
    }
  }
}

配置

所有配置均通过环境变量完成——无需配置文件(可选的凭据库除外)。

变量

默认值

描述

BRAVE_API_KEY

(空)

Brave Search API 密钥。若未设置,则回退到 DuckDuckGo。

OLLAMA_URL

http://localhost:11434

用于摘要/综合的 Ollama 端点。留空以禁用。

OLLAMA_MODEL

qwen2.5:14b

用于摘要和综合的模型。

MCP_RESEARCH_CACHE_DIR

~/.mcp-research/cache/

URL 获取缓存目录。

MCP_RESEARCH_CACHE_TTL

24

缓存 TTL(小时)。

MCP_RESEARCH_LOG_DIR

~/.mcp-research/logs/

搜索日志目录 (NDJSON)。

MCP_RESEARCH_MAX_RESULTS

10

默认最大搜索结果数。

MCP_RESEARCH_VAULT_FILE

~/.mcp-research/vault.yaml

凭据库文件路径。

MCP_RESEARCH_VAULT_HOT_RELOAD

true

文件更改时自动重新加载凭据库。

MCP_RESEARCH_SESSION_TTL

1800

会话空闲超时(秒)。

工具详情

web_search(query, max_results=5, summarize=False, auto_fetch_top=False)

使用 3 层级联搜索网络以实现最大可靠性:

  1. Brave Search API — 快速、高质量(需要 BRAVE_API_KEY

  2. DuckDuckGo 库 — 无需 API 密钥,在速率限制时重试

  3. DuckDuckGo HTML 抓取器 — 最后手段的回退方案

选项:

  • summarize: 使用 Ollama 总结结果(需要运行 Ollama)

  • auto_fetch_top: 同时获取并返回顶部结果的完整内容

fetch_url

fetch_url(url, summarize=False, max_chars=15000)

获取 URL 并将其转换为干净的 Markdown:

  • SSRF 防护: 阻止 localhost、私有 IP、非 HTTP 协议

  • 智能重试: 在 429/5xx 错误时进行指数退避,每跳重定向验证

  • 24 小时缓存: SHA-256 键值,可配置 TTL

  • 内容支持: HTML → Markdown,JSON → 代码块,二进制 → 拒绝

  • 智能截断: 在标题/段落边界处断开,而非文本中间

  • CAPTCHA 检测: 标记 Cloudflare、hCaptcha、reCAPTCHA、Akamai 防火墙

  • Token 高效: 默认 15K 字符(约 4K Token),可通过 max_chars 调整

research

research(query, depth="standard", context="")

复合研究流水线:

  1. 查询重写 — Ollama 将您的问题优化为搜索关键词

  2. 网络搜索 — 查找相关页面(支持零结果重试扩展)

  3. 并行获取 — 并发获取前 N 个页面

  4. 摘要 — Ollama 总结每个页面

  5. 综合 — Ollama 生成最终的带引用答案

深度级别:

深度

页面数

综合

quick

2

standard

5

deep

10

所有步骤在没有 Ollama 的情况下都会优雅降级——您仍然可以获得搜索结果和页面内容。

youtube_essence

youtube_essence(url, mode="standard")

从 YouTube 视频中提取结构化内容:

  • 字幕: 自动字幕或 Whisper 转录(本地、私有)

  • 摘要: 通过 Ollama 进行 AI 摘要

  • 要点: 项目符号总结

  • 章节: 带时间戳的片段

  • 引用: 值得注意的引语(深度模式)

模式:quick (TL;DR), standard (+ 章节), deep (+ 引用)

需要 yt-dlp。可选:用于纯音频视频的 faster-whisper,用于媒体提取的 ffmpeg

deep_ingest

deep_ingest(path, include_types="", max_files=200, summarize=False)

从目录或单个文件中的文件中提取文本:

  • 文本文件: .txt, .md, .json, .csv, 源代码等

  • PDF: 通过 PyPDF2(可选依赖)

  • Office: .docx, .xlsx, .pptx(可选依赖)

  • 音频/视频: Whisper 转录(可选)

  • 图像: 通过 Ollama 视觉模型进行 OCR(可选)

类型过滤器:text, pdf, audio, video, image, office

academic_lookup

academic_lookup(identifier, fetch_fulltext=True)

从多种标识符类型解析学术论文:

  • DOI: 10.xxxx/... → Crossref 元数据 + 出版商重定向

  • ArXiv: 2301.12345 → 摘要 + PDF

  • PubMed: PMID → E-utilities 元数据 → DOI 链

  • URL: 出版商页面检测

通过凭据库获取全文访问权限:

  • EZproxy 重写(前缀和后缀模式)

  • Bearer Token、API 密钥、基本认证、Cookie Jar

  • 自动出版商检测(IEEE, Springer, Elsevier, ACM, Wiley, Nature, JSTOR 等)

twitter_extract

twitter_extract(url, include_thread=False)

使用级联策略从 X.com/Twitter 提取推文和推文串:

  1. yt-dlp (主要) — 使用 Cookie Jar 进行认证访问

  2. Twitter API v2 — 如果在凭据库中配置了 Bearer Token

  3. HTML 获取 — 基于 Cookie 的最后手段

返回:文本、作者、时间戳、指标(点赞、转发、回复)、媒体 URL。

vault_status

vault_status()

显示已加载的凭据配置文件、匹配模式和认证类型——绝不泄露密钥。同时检查可选依赖项的可用性。

凭据库

创建 ~/.mcp-research/vault.yaml 以配置受保护源的认证:

version: 1
profiles:
  # University EZproxy for IEEE
  ieee-university:
    match: "*.ieee.org/**"
    ezproxy:
      base_url: "https://ezproxy.myuniversity.edu/login?url="
      mode: prefix

  # Springer via API key
  springer:
    match: "*.springer.com/**"
    auth:
      type: api_key
      header: "X-ApiKey"
      value: "${SPRINGER_API_KEY}"

  # X.com via browser cookies
  twitter:
    match: "*.x.com/**"
    auth:
      type: cookie_jar
      path: "${HOME}/.mcp-research/cookies/twitter.txt"
  • ${VAR} 从环境变量解析——密钥绝不以明文存储

  • 第一个匹配的配置文件生效(顺序很重要)

  • 认证类型:bearer, basic, api_key, cookie_jar, headers

  • EZproxy 模式:prefix(前缀基础 URL)或 suffix(域名重写)

  • 热重载:凭据库文件更改会自动生效

Token 效率

所有工具默认生成紧凑的输出,以避免浪费 AI 上下文窗口的 Token:

工具

默认输出

覆盖方式

fetch_url

~15K 字符 (~4K Token)

max_chars 参数

research

每个源 ~500 Token

优先使用摘要而非原始内容

academic_lookup

~10K 字符全文

带通知截断

deep_ingest

15 个文件,300 字符摘录

max_files 参数

youtube_essence

3K 字符字幕摘录

结果对象中包含完整字幕

安全与健壮性

  • SSRF 防护: 在每一跳上阻止 localhost、私有 IP、链路本地地址、非 HTTP 协议

  • CAPTCHA 检测: 识别 Cloudflare, hCaptcha, reCAPTCHA, Akamai, DDoS-Guard 防火墙

  • 输入验证: 大小限制、URL 验证、安全重定向跟踪

  • 无 eval/exec: 无动态代码执行

  • 凭据库安全: 密钥从环境变量解析,repr() 会屏蔽所有认证值

  • 缓存隔离: 仅限所有者的目录权限 (0o700)

  • 优雅降级: 缺失可选依赖不会导致崩溃——功能会通过清晰的消息降级

CLI

mcp-research serve                          # Run MCP stdio server (default)
mcp-research search "query"                 # Search the web
mcp-research fetch https://example.com      # Fetch URL to markdown
mcp-research youtube https://youtu.be/...   # Extract YouTube video
mcp-research ingest ./docs/                 # Extract text from files
mcp-research academic "10.1109/..."         # Resolve academic paper
mcp-research tweet https://x.com/.../123    # Extract tweet
mcp-research vault                          # Show vault profiles
mcp-research doctor                         # Check dependencies

开发

git clone https://github.com/MABAAM/Maibaamcrawler.git
cd Maibaamcrawler
pip install -e ".[all]"
pytest tests/ -v
python -m mcp_research

更新日志

v0.3.0

  • 凭据库: ~/.mcp-research/vault.yaml YAML 配置,支持环境变量插值、Glob URL 匹配、EZproxy 重写、热重载

  • 会话池: 具有凭据库认证注入、Cookie Jar 支持、空闲驱逐的按域名会话

  • CAPTCHA 检测: 识别 Cloudflare, hCaptcha, reCAPTCHA, Akamai, DDoS-Guard, 通用机器人防火墙

  • 学术查找: DOI/ArXiv/PubMed 解析、Crossref 元数据、通过凭据库进行机构全文访问

  • Twitter/X 提取: yt-dlp, API v2, 以及支持推文串的基于 Cookie 的访问

  • Token 效率: 默认输出上限(获取约 4K Token,每个研究源约 500 Token)以保留 AI 上下文

  • Doctor 命令: mcp-research doctor 检查所有依赖项和配置

  • Windows 编码修复: UTF-8 stdout/stderr 包装器防止 cp1252 崩溃

v0.2.0

  • YouTube 精华: 字幕提取、AI 摘要、要点、章节、引用

  • 深度提取: PDF, DOCX, XLSX, PPTX, 音频, 视频, 图像文本提取

  • Ollama 集成: 查询重写、摘要、综合、视觉 OCR

  • 搜索日志: 所有操作的 NDJSON 事件日志

  • Brave Search: 支持 API 密钥的主要搜索层

v0.1.0

  • 初始版本:3 个工具 (web_search, fetch_url, research),SSRF 防护,缓存

许可证

MIT

Available Tools

8 tools
academic_lookupA
Read-onlyIdempotent

Resolve a DOI, ArXiv ID, or PubMed ID. Fetch paper via institutional access if configured in vault.

Args: identifier: DOI (10.xxxx/...), ArXiv ID (2301.12345), PubMed ID (12345678), or publisher URL. fetch_fulltext: Attempt to fetch the full paper text via vault credentials / EZproxy.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYes
fetch_fulltextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations: it mentions attempting to fetch full text via vault credentials/EZproxy, which is a key side effect. Annotations already declare readOnlyHint=true and idempotentHint=true, so there is no contradiction. The description supplements annotations well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the primary purpose, followed by parameter details. It contains no extraneous text. Slightly more structure (e.g., separating args clearly) could improve scannability, but it is already efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description appropriately focuses on input behavior. It covers the main use cases and mentions the vault configuration requirement. Minor gaps exist (e.g., what happens if fetch_fulltext fails), but overall it is sufficiently complete for a well-annotated tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate. It explains that 'identifier' can be a DOI, ArXiv ID, PubMed ID, or publisher URL, and that 'fetch_fulltext' defaults to true. This provides necessary semantics that the schema alone lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool resolves specific academic identifiers (DOI, ArXiv ID, PubMed ID) and optionally fetches full text via institutional access. The verb 'Resolve' and listing of identifier types provide a specific purpose that distinguishes it from siblings like web_search and fetch_url.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool (for resolving academic identifiers and fetching papers with vault access). While it does not provide explicit 'when not to use' guidance, the sibling tools offer natural alternatives, and the context is clear enough for an AI agent to infer appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deep_ingestA
Read-onlyIdempotent

Extract text from files in a directory or single file. Supports text, PDF, DOCX, XLSX, PPTX, audio, video, images.

Args: path: Directory or file path to process. include_types: Comma-separated type filter (text,pdf,audio,video,image,office). Empty = all. max_files: Maximum files to process (1-5000). summarize: If true, generate an AI summary of the combined content.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
max_filesNo
summarizeNo
include_typesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations confirm read-only, idempotent, non-destructive behavior. The description adds value by detailing the extraction process (text from various formats) and the optional AI summarization feature, which annotations do not cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: a one-line overview followed by a clean bullet-style Args section. Each sentence serves a purpose, and the essential information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (many file types, 4 parameters, optional summarize), the description sufficiently covers purpose, parameters, and behavior. An output schema exists, so return values need not be detailed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description provides detailed parameter docs (path, include_types, max_files, summarize) with defaults and examples (e.g., 'Comma-separated type filter... Empty = all'). This fully compensates for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool extracts text from files (directories or single files), listing supported formats (text, PDF, DOCX, etc.). This distinguishes it from sibling tools like fetch_url (URLs), web_search (web queries), and youtube_essence (YouTube).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the tool's scope (local file processing) and supported types, providing clear context. However, it does not explicitly state when not to use it or mention alternatives beyond implied differences from siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_urlA
Read-onlyIdempotent

Fetch a URL, convert to markdown. SSRF-protected and cached.

Args: url: The URL to fetch. summarize: If true and Ollama is available, include a summary. max_chars: Maximum content chars (default ~15K/4K tokens). Set higher for full pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
max_charsNo
summarizeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds SSRF protection, caching, and conditional summarization beyond annotations' readOnly/idempotent hints. No contradictions. More details on error handling would improve, but current info is solid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: single opening sentence plus a three-line bullet list. No fluff, every sentence adds value. Perfect structure for quick scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists, description doesn't need return details. It covers security (SSRF), caching, and parameter nuances. Missing authentication or error info, but overall adequate for a fetch tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully explains each parameter: url is the URL, summarize has Ollama condition, max_chars includes default and advice to increase for full pages. Adds significant value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch a URL, convert to markdown' with specific verb and resource. It distinguishes from siblings like web_search and academic_lookup by focusing on fetching a single URL rather than searching or academic data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: fetch a specific URL for markdown conversion. It doesn't explicitly compare to siblings but provides enough context (e.g., Ollama availability for summarization) to guide appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

researchA
Read-onlyIdempotent

Compound research: search → fetch top pages → summarize → synthesize.

Args: query: The research question. depth: Research depth — "quick" (2 pages), "standard" (5 pages), or "deep" (10 pages). context: Optional context from prior research to inform synthesis.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNostandard
queryYes
contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds valuable behavioral context: the multi-step process (search, fetch, summarize, synthesize) and the meaning of depth, which goes beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with a front-loaded pipeline overview and bullet points for arguments. Every sentence adds value; no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is an output schema (not shown) and annotations cover safety, the description explains the tool's composite nature, parameter meanings, and pipeline stages. It is complete for an agent to understand and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries full burden. It explains all three parameters: query is the research question, depth with three options, and context as optional prior research. This fully compensates for missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool does 'Compound research: search → fetch top pages → summarize → synthesize', which is a specific verb+resource and distinguishes it from sibling tools like web_search, fetch_url, or academic_lookup that perform only individual steps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides the research pipeline and explains the depth parameter with clear options. It implies use for comprehensive research combining multiple steps, but does not explicitly state when not to use or compare directly with siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

twitter_extractA
Read-onlyIdempotent

Extract tweet or thread from X.com/Twitter. Supports yt-dlp, API, and cookie-based access.

Args: url: Tweet URL (x.com/user/status/id or twitter.com/user/status/id). include_thread: If true, fetch the full conversation thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
include_threadNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey read-only, idempotent, and non-destructive behavior. The description adds that it supports multiple access methods, which is useful context beyond annotations, but doesn't detail error handling 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise: two sentences for purpose and two bullet-point args. No wasted words, front-loaded with main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only 2 simple params and an output schema (not shown), the description covers the essential behavior and parameter semantics. It's mostly complete, though could mention output format briefly, but output schema covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining the url format (x.com/user/status/id) and the purpose of include_thread (fetch full thread). Both parameters are clearly described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Extract' and the resource 'tweet or thread from X.com/Twitter', distinguishing it from siblings like fetch_url by being Twitter-specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides technical details (yt-dlp, API, cookie-based access) but lacks explicit guidance on when to use this tool versus alternatives like fetch_url. No when-not-to-use or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vault_statusA
Read-onlyIdempotent

Show credential vault status, loaded profiles, and optional dependency availability. Never exposes secrets.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds security assurance 'Never exposes secrets', which is valuable beyond annotations. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, second adds critical security note. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Zero parameters, good annotations, output schema exists. Description fully covers the tool's behavior and safety. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, schema coverage 100%. Description adds meaning by specifying what the tool shows (status, profiles, dependencies) beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Show' and resource 'credential vault status', with clear scope including loaded profiles and dependency availability. Distinguishes from siblings by being the only vault-related tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is clear: a status tool to check vault state. No explicit alternatives or exclusions, but the purpose implies when to use. Slight lack of when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_essenceA
Read-onlyIdempotent

Extract essence from a YouTube video: transcript, summary, key points, chapters, quotes.

Args: url: YouTube URL (youtube.com/watch?v=, youtu.be/, youtube.com/shorts/). mode: Extraction depth — "quick" (TL;DR), "standard" (+ chapters), or "deep" (+ quotes).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
modeNostandard

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds no behavioral traits beyond these, such as external API dependency or rate limits. Despite annotations covering safety, the description misses contextual details like needing internet access.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise: a single sentence defining purpose followed by a well-structured Args list. Every sentence is meaningful, and the structure is front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, no nested objects), the description covers purpose, parameters, and output types. It lacks information on error handling or return format, but the existence of an output schema mitigates this. Overall, it is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining the 'url' parameter with allowed formats and the 'mode' parameter with three depth levels and their effects. This adds significant meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Extract essence') and the resource ('YouTube video'), followed by a list of outputs (transcript, summary, key points, chapters, quotes). This distinguishes it from siblings like twitter_extract or fetch_url which target different sources or actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context via parameter explanations (allowed URL formats and mode options). However, it does not explicitly mention when to use this tool over alternatives or exclude scenarios, though the specificity to YouTube serves as implicit guidance.

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.

  1. 8 tool updatesv0.1.1
    • Removedacademic_lookup
    • Removeddeep_ingest
    • Removedfetch_url
    • Removedresearch
    • Removedtwitter_extract
    • Removedvault_status
    • Removedweb_search
    • Removedyoutube_essence
  2. 6 tool updatesv0.3.0
    • Addedacademic_lookup
    • Addeddeep_ingest
    • Changedfetch_url1 field changed
      • changedInput schema / properties / max_chars / default
        Previous value: -50000New value: +0
    • Addedtwitter_extract
    • Addedvault_status
    • Addedyoutube_essence
  3. 3 tool updatesv0.1.0
    • First observedfetch_url
    • First observedresearch
    • First observedweb_search

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct source or operation: academic references, local files, URLs, compound research, Twitter, vault status, web search, and YouTube. There is no ambiguity between tools.

Naming Consistency2/5

Tool names use mixed conventions: verb_noun (fetch_url, web_search), noun_noun (vault_status, youtube_essence), platform_verb (twitter_extract), and single word (research). No consistent pattern.

Tool Count5/5

8 tools is an appropriate scope for a research assistant, covering key sources (web, academic, social media, local files) without being overwhelming.

Completeness4/5

The toolset covers major research workflows: search, fetch, extract, and synthesize. Minor gaps like result organization or citation management are not critical for core functionality.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • F
    license
    A
    quality
    Not graded
    maintenance
    Enables AI assistants to perform comprehensive research by searching Google, mining Reddit discussions, scraping web content with JS rendering, and synthesizing findings with citations into structured context.
    5
    165
    3
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to access real-time web data through search, markdown scraping, and browser automation while bypassing anti-bot protections. It provides tools for web research, e-commerce monitoring, and data extraction from across the globe.
    4
    7,869
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to search the web, fetch pages, and synthesize research through three tools: web_search, fetch_page, and research_topic, all in a single pay-per-use API call.
    2
    MIT

Latest Blog Posts

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/MABAAM/Maibaamcrawler'

If you have feedback or need assistance with the MCP directory API, please join our Discord server