Skip to main content
Glama
MABAAM
by MABAAM

mcp-research

웹 조사, 학술 논문, Twitter/X, YouTube 및 파일 수집을 위한 MCP 서버입니다. AI 어시스턴트를 위한 8가지 도구를 모두 MCP stdio 프로토콜을 통해 제공합니다. 기관 접근을 위한 자격 증명 보관소, CAPTCHA 감지 및 토큰 효율적인 출력을 포함합니다.

도구

도구

설명

web_search

3단계 검색 캐스케이드: Brave API → DuckDuckGo → HTML 스크레이퍼

fetch_url

모든 URL 가져오기 → 깔끔한 마크다운 변환, SSRF 보호 및 24시간 캐시 포함

research

복합 파이프라인: 쿼리 재작성 → 검색 → 병렬 가져오기 → 요약 → 합성

youtube_essence

YouTube 동영상 → 스크립트, 요약, 핵심 포인트, 챕터, 인용구

deep_ingest

파일에서 텍스트 추출: PDF, DOCX, XLSX, PPTX, 오디오, 비디오, 이미지

academic_lookup

DOI / ArXiv / PubMed 확인 → 메타데이터 + 기관 접근을 통한 전문(full text)

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을 가져와 깔끔한 마크다운으로 변환합니다:

  • SSRF 보호: 로컬호스트, 사설 IP, 비 HTTP 스키마 차단

  • 스마트 재시도: 429/5xx 오류 시 지수 백오프, 홉별 리다이렉트 검증

  • 24시간 캐시: SHA-256 키 기반, 구성 가능한 TTL

  • 콘텐츠 지원: HTML → 마크다운, JSON → 코드 블록, 바이너리 → 거부

  • 스마트 잘림: 텍스트 중간이 아닌 제목/단락 경계에서 끊음

  • CAPTCHA 감지: Cloudflare, hCaptcha, reCAPTCHA, Akamai 차단벽 플래그 지정

  • 토큰 효율성: 기본 15K 문자 (약 4K 토큰), 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 요약

  • 핵심 포인트: 불렛 포인트 요약

  • 챕터: 타임스탬프가 포함된 세그먼트

  • 인용구: 주목할 만한 인용구 (deep 모드)

모드: quick (요약), 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 토큰, API 키, 기본 인증, 쿠키 저장소

  • 자동 게시자 감지 (IEEE, Springer, Elsevier, ACM, Wiley, Nature, JSTOR 등)

twitter_extract

twitter_extract(url, include_thread=False)

전략 캐스케이드를 사용하여 X.com/Twitter에서 트윗 및 스레드 추출:

  1. yt-dlp (기본) — 인증된 접근을 위해 쿠키 저장소와 함께 작동

  2. Twitter API v2 — 보관소에 Bearer 토큰이 구성된 경우

  3. HTML 가져오기 — 쿠키 기반 최후의 수단

반환값: 텍스트, 작성자, 타임스탬프, 지표(좋아요, 리트윗, 답글), 미디어 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 (도메인 재작성)

  • 핫 리로드: 보관소 파일 변경 사항이 자동으로 적용됩니다.

토큰 효율성

모든 도구는 AI 컨텍스트 창 토큰 낭비를 방지하기 위해 기본적으로 압축된 출력을 생성합니다:

도구

기본 출력

재정의

fetch_url

~15K 문자 (~4K 토큰)

max_chars 매개변수

research

소스당 ~500 토큰

원본 콘텐츠보다 요약 선호

academic_lookup

~10K 문자 전문

알림과 함께 잘림

deep_ingest

15개 파일, 300자 발췌

max_files 매개변수

youtube_essence

3K 문자 스크립트 발췌

결과 객체에 전체 스크립트 포함

안전성 및 견고성

  • SSRF 보호: 모든 홉에서 로컬호스트, 사설 IP, 링크 로컬, 비 HTTP 스키마 차단

  • CAPTCHA 감지: Cloudflare, hCaptcha, reCAPTCHA, Akamai, DDoS-Guard 차단벽 식별

  • 입력 검증: 크기 제한, URL 검증, 안전한 리다이렉트 추적

  • No 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

  • 자격 증명 보관소: 환경 변수 보간, Glob URL 일치, EZproxy 재작성, 핫 리로드를 지원하는 ~/.mcp-research/vault.yaml 구성

  • 세션 풀링: 보관소 인증 주입, 쿠키 저장소 지원, 유휴 퇴거를 포함한 도메인별 세션

  • CAPTCHA 감지: Cloudflare, hCaptcha, reCAPTCHA, Akamai, DDoS-Guard, 일반 봇 차단벽 식별

  • 학술 조회: DOI/ArXiv/PubMed 확인, Crossref 메타데이터, 보관소를 통한 기관 전문 접근

  • Twitter/X 추출: yt-dlp, API v2 및 스레드 지원을 포함한 쿠키 기반 접근

  • 토큰 효율성: AI 컨텍스트 보존을 위한 기본 출력 제한 (가져오기 시 ~4K 토큰, 조사 소스당 ~500 토큰)

  • Doctor 명령: mcp-research doctor가 모든 종속성 및 구성 확인

  • Windows 인코딩 수정: UTF-8 stdout/stderr 래퍼가 cp1252 충돌 방지

v0.2.0

  • YouTube 에센스: 스크립트 추출, AI 요약, 핵심 포인트, 챕터, 인용구

  • Deep ingest: 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