CompanyScope
CompanyScope MCP 서버
단 한 번의 도구 호출로 얻는 기업 정보. 모든 도메인이나 회사 이름으로부터 재무, 기술 스택, 경쟁사, 특허, 주요 인물, 채용 공고, 도메인 정보, 소셜 존재감 및 뉴스 등 포괄적인 회사 프로필을 가져옵니다. 12개의 무료 공개 데이터 소스를 병렬로 집계합니다. Claude, ChatGPT, Cursor, Windsurf, Cline 및 모든 MCP 호환 클라이언트와 함께 작동합니다.
라이브 데모 체험하기 — 회사 이름을 입력하고 즉시 결과를 확인하세요. 가입이 필요 없습니다.
11개의 모든 도구를 갖춘 클라우드 호스팅 및 상시 접속을 원하시나요? Apify Actor를 사용하세요. 사용한 만큼만 지불하며, 관리할 인프라가 없습니다.
도구
도구 | 설명 |
| 전체 회사 프로필 — 설립 정보, 설명, 기술 스택, 주요 인물, 뉴스, 기업 데이터, 재무 |
| 웹사이트 + GitHub에서 19개 이상의 프레임워크, 언어, 호스팅 및 분석 도구 감지 |
| 직함이 포함된 창립자, 임원 및 팀원 찾기 |
| 회사에 대한 최근 뉴스 기사 |
| 기업 등록 데이터 — 설립일, 관할 구역, 임원 (140개국 이상) |
| SEC EDGAR 재무 데이터 — 매출, 순이익, 자산, 부채, 주식 티커, 최근 공시 |
| 웹 검색을 통해 경쟁사 발견 |
| Google Patents를 통해 회사 양수인별 미국 특허 검색 |
| DNS 레코드, WHOIS/RDAP, 호스팅 제공업체, 이메일 서비스 감지 |
| 채용 페이지의 오픈 포지션 — 직함, 부서, 위치 |
| 12개 플랫폼의 소셜 미디어 + GitHub 조직 통계 |
Related MCP server: Brand Intelligence MCP
빠른 시작
옵션 1: Apify Actor (클라우드 호스팅, 11개 도구 전체)
Apify에서 CompanyScope를 사용하세요 — 상시 접속, 사용량 기반 과금, 설정 불필요:
# Claude Code
claude mcp add companyscope --transport http \
https://constructive-wainscot--companyscope-mcp.apify.actor/mcp \
--header "Authorization:Bearer YOUR_APIFY_TOKEN"// Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"companyscope": {
"command": "npx",
"args": [
"mcp-remote",
"https://constructive-wainscot--companyscope-mcp.apify.actor/mcp",
"--header", "Authorization:Bearer YOUR_APIFY_TOKEN"
]
}
}
}옵션 2: Claude Desktop 원클릭 설치 (.mcpb)
CompanyScope 확장 프로그램을 다운로드하고 더블 클릭하여 Claude Desktop에 설치하세요. 별도의 설정이 필요 없습니다.
옵션 3: 무료 호스팅 서버 (11개 도구 전체, 일일 25회 호출)
무료 Cloudflare Workers 엔드포인트에 연결하세요:
# Claude Code
claude mcp add companyscope --transport http https://companyscope-mcp.stewwilli.workers.dev/mcp// Claude Desktop
{
"mcpServers": {
"companyscope": {
"command": "npx",
"args": ["mcp-remote", "https://companyscope-mcp.stewwilli.workers.dev/mcp"]
}
}
}옵션 4: ChatGPT (Pro, Team, Enterprise, Edu)
ChatGPT에서 CompanyScope를 직접 연결하세요 — 설치 불필요:
ChatGPT 열기 → 설정(Settings) → 앱 및 커넥터(Apps & Connectors) → 고급 설정(Advanced settings)
**개발자 모드(Developer Mode)**를 ON으로 전환
새 커넥터 추가(Add new connector) 클릭
입력:
이름:
CompanyScopeURL:
https://companyscope-mcp.stewwilli.workers.dev/mcp인증: 인증 없음(No Auth) 선택
"이 애플리케이션을 신뢰합니다" 체크 → 생성(Create)
모든 채팅에서 개발자 모드를 활성화하면 CompanyScope의 11개 도구를 사용할 수 있습니다.
옵션 5: npm (로컬, stdio 전송)
npx companyscope-mcp옵션 6: Cloudflare Workers에서 직접 호스팅
git clone https://github.com/Stewyboy1990/companyscope-mcp.git
cd companyscope-mcp && npm install
wrangler kv namespace create CACHE
# Update wrangler.toml with your KV namespace ID
npm run deploy데이터 소스
모든 데이터는 10개의 무료 공개 소스에서 집계되며, 유료 API 키가 필요하지 않습니다:
소스 | 제공 데이터 |
Wikipedia / Wikidata | 회사 설명, 설립 연도, 본사, 직원 수, 산업, 매출, 창립자, CEO |
GitHub API | 조직 프로필, 주요 저장소, 프로그래밍 언어, 별점, 기여자 |
SEC EDGAR | 매출, 순이익, 총 자산, 부채, 주식 티커, 최근 공시 |
웹 스크래핑 | 회사 이름, 설명, 기술 스택 (19개 이상의 프레임워크), 소셜 링크 |
OpenCorporates | 설립일, 관할 구역, 등록된 임원 (140개국 이상) |
RDAP | 도메인 등록기관, 등록일, 네임서버, 도메인 연령 |
DNS (Cloudflare DoH) | A, MX, NS, TXT 레코드; 호스팅 제공업체 및 이메일 서비스 감지 |
Brave Search | 경쟁사 발견, 특허 검색, 회사 뉴스 |
Google Patents | 회사 양수인별 미국 특허 — 제목, ID, 날짜 |
채용 페이지 | 채용 공고, 부서, 위치, ATS 플랫폼 감지 |
출력 예시
> lookup_company("anthropic.com")다음 항목이 포함된 구조화된 프로필을 반환합니다:
회사 이름, 설명, 산업
설립일, 본사 위치, 직원 수
기술 스택 (웹사이트 + GitHub)
주요 인물 (기업 등록부, 웹사이트, Wikipedia)
최근 뉴스
소셜 프로필
신뢰도 점수 (데이터를 반환한 소스 기반 0-1)
가격
옵션 | 도구 | 일일 호출 제한 | 가격 |
무료 (Cloudflare) | 핵심 6개 | 25 | $0 |
무료 (npm) | 핵심 6개 | 무제한 | $0 |
전체 11개 | 무제한 | 사용량 기반 과금 |
사용 사례
영업 잠재 고객 발굴 — 연락 전 대상 기업 조사. 기술 스택, 팀 규모, 재무 상태 확인.
실사(Due Diligence) — SEC 공시, 기업 등록부, 특허 포트폴리오를 한 번의 호출로 확인.
경쟁 정보 — 경쟁사 발견, 기술 스택 및 채용 활동 비교.
AI 에이전트 워크플로우 — AI 비서가 자율적으로 기업 데이터를 조사하고 보강하도록 설정.
기타 정보
Apify Actor — 클라우드 호스팅, 사용량 기반 과금, 11개 도구 전체 제공
npm —
npx companyscope-mcp공식 MCP 레지스트리 —
io.github.Stewyboy1990/companyscope-mcpSmithery — 원클릭 설치
Glama — AAA 점수
라이선스
MIT
Available Tools
6 toolsget_company_newsAInspect
Get recent news articles about a company from Brave Search and NewsAPI. Returns article titles, descriptions, sources, and publication dates sorted by recency. Use company name, not domain. Coverage depends on server-side API key configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| company_name | Yes | Company name as it would appear in news articles (e.g. 'Anthropic', 'OpenAI', 'Tesla'). Do not pass a domain. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses returned data (titles, descriptions, sources, dates sorted by recency) and the dependency on server-side API key configuration. No annotations provided, but description adequately covers behavioral expectations.
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?
Three sentences: purpose and sources, returned fields, usage note + caveat. Every sentence earns its place; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple news-fetching tool with one parameter and no output schema, the description covers input requirements, return content, sorting, and external dependencies. No critical gaps.
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 covers 100% of the single parameter with description. Description adds value by providing examples ('Anthropic', 'OpenAI', 'Tesla') and reinforcing the 'not domain' constraint, exceeding baseline.
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?
Clearly states 'Get recent news articles about a company' with specific sources (Brave Search and NewsAPI). Precisely describes the action and resource, distinguishing it from sibling tools that handle corporate registry, financials, or people.
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?
Explicitly instructs to use company name, not domain, and mentions API key dependency. Lacks explicit guidance on when to prefer this tool over alternatives, but context is sufficiently implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_corporate_registryAInspect
Look up corporate registry data from OpenCorporates — incorporation date, status, jurisdiction, registered address, and company officers. Covers companies in 140+ jurisdictions worldwide. Use the company's legal name for best results. Note: this may return no results for very new or small private companies.
| Name | Required | Description | Default |
|---|---|---|---|
| company_name | Yes | Company legal name as registered (e.g. 'Stripe, Inc.', 'Alphabet Inc.'). Legal names with suffixes like Inc/Ltd/GmbH produce more accurate results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. Discloses potential no-results, but does not mention rate limits, data freshness, or auth requirements. Adequate but not thorough.
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?
Three concise sentences; purpose is front-loaded. No superfluous words. Efficient and 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?
Despite no output schema, description enumerates returned data fields (incorporation date, etc.) and covers edge case (no results). Sufficient for a simple lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of the single parameter with clear description. Description adds value by suggesting suffixes improve accuracy, going beyond schema details.
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?
Clearly states lookup of corporate registry data from OpenCorporates, specifying data types (incorporation date, status, etc.) and coverage (140+ jurisdictions). Distinguishes from siblings like get_financials or get_key_people.
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?
Provides best practice (use legal name) and acknowledges possible no-results for new/small companies, but does not explicitly contrast with sibling tools or state when to prefer this over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financialsAInspect
Get financial data for US public companies from SEC EDGAR filings. Returns revenue, net income, total assets, total liabilities, stockholders' equity, stock exchange tickers, SIC industry code, and recent SEC filings (10-K, 10-Q, 8-K). Only works for companies that file with the SEC — private companies and non-US companies will return no results. Data is updated as companies file new reports.
| Name | Required | Description | Default |
|---|---|---|---|
| company_name | Yes | Company name or stock ticker symbol (e.g. 'Apple', 'AAPL', 'Tesla', 'MSFT'). Both common names and ticker symbols are supported. |
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 data sources (SEC EDGAR), scope (US public companies), and data freshness ('updated as companies file new reports'), which is adequate for a read-only data retrieval tool.
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 (three sentences), front-loaded with the core purpose, and every sentence adds value. No 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?
With one simple parameter, no output schema, and clear scope, the description fully explains what the tool does, what data it returns, and its limitations. No additional information is needed.
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 single parameter 'company_name' is well-described in the schema (100% coverage). The description adds that both common names and ticker symbols are supported, which enhances semantic understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets financial data for US public companies from SEC EDGAR, listing specific fields (revenue, net income, etc.). This distinguishes it from sibling tools like get_company_news (news) or get_corporate_registry (registry info).
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 limits use to SEC-filing companies, stating private and non-US companies will return no results. It gives clear context but does not explicitly mention alternatives to this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_key_peopleAInspect
Find key people at a company including founders, C-suite executives, and team members. Scrapes the company's website (e.g. /about, /team pages), checks Wikipedia, and cross-references GitHub org members. Returns names, titles, and sources. Use this when you need leadership or team information specifically. Requires a domain name.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company website domain without protocol (e.g. 'openai.com'). The tool will scrape the site's about/team pages. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the scraping process (website, Wikipedia, GitHub), the data returned (names, titles, sources). With no annotations, this is sufficient behavioral disclosure. Could be improved by mentioning potential failure modes or rate limits, but overall transparent.
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?
Three sentences concisely cover purpose, method, use case, and requirement. No extraneous words. Front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and no output schema, the description covers the essential aspects: input, process, output, and use case. It could be more complete by mentioning limitations (e.g., only public info, or if site blocks scraping), but it's largely adequate.
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 covers the single parameter 'domain' at 100%. The description adds further context: 'without protocol (e.g. 'openai.com')' and explains how the domain is used (scraping about/team pages). This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly defines the tool as finding key people (founders, C-suite, team members) at a company. Differentiates from sibling tools like get_company_news or get_financials by focusing specifically on leadership and team information.
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?
Explicitly states when to use: 'when you need leadership or team information specifically.' Also specifies a prerequisite: 'Requires a domain name.' Does not provide explicit exclusions or alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tech_stackAInspect
Detect a company's technology stack by analyzing HTTP headers, DNS records, and GitHub repositories. Returns frameworks, programming languages, hosting providers, analytics tools, and CDNs. Use this instead of lookup_company when you only need technology information. Requires a domain name — company names are not supported for this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company website domain without protocol (e.g. 'vercel.com', 'github.com'). Must be a valid domain, not a company name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the analysis methods (HTTP headers, DNS, GitHub) and return content, but does not mention any side effects, rate limits, or authentication requirements. Since no annotations are provided, the description carries the full burden; it is mostly transparent but lacks explicit safety or non-destructive confirmation.
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 three sentences, each adding distinct value: purpose and method, usage guidance and return types, and input constraint. No unnecessary words, front-loaded with key 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 low complexity (1 parameter), full schema coverage, and no output schema, the description compensates by listing return types (frameworks, languages, etc.) and providing clear usage context. It is complete for an agent to correctly invoke the 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?
With 100% schema coverage, the input schema already describes the 'domain' parameter adequately. The description reinforces the requirement but adds no new semantic meaning beyond confirming domain format and exclusion of company names.
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 explicitly states 'Detect a company's technology stack' with specific methods (HTTP headers, DNS, GitHub) and return types (frameworks, languages, etc.). It distinguishes itself from the sibling 'lookup_company' tool, making the purpose clear and unique.
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: 'Use this instead of lookup_company when you only need technology information' and 'Requires a domain name — company names are not supported.' This covers when to use, when not to, and an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_companyAInspect
Get a comprehensive company profile by aggregating data from Wikipedia, GitHub, SEC EDGAR, OpenCorporates, and web scraping. Returns founding year, description, headquarters, employee count, industry, tech stack, key people, and recent news. Use this as the primary entry point for any company research — it calls all other data sources automatically. Input can be a domain (stripe.com) or company name (Stripe). Returns a JSON object with confidence scores and source attribution.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Company domain (e.g. 'stripe.com') or company name (e.g. 'Stripe'). Domains produce richer results because they enable website scraping and DNS analysis. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses key behavioral traits: it aggregates data from multiple sources, returns JSON with confidence scores and source attribution, and notes that domains produce richer results. It could mention potential latency or failure modes, but overall is transparent enough.
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 four sentences, each serving a purpose: purpose and sources, return fields, usage guidance, input format and note. No fluff, and critical information 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 and lack of output schema, the description adequately covers input format, output structure (fields, confidence scores, source attribution), and usage context. It equips the agent to understand what the tool returns and when to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter. The description adds valuable context beyond the schema: 'Domains produce richer results because they enable website scraping and DNS analysis.' This helps an agent choose between domain or company name.
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 a comprehensive company profile by aggregating data from multiple sources.' It lists specific return fields and distinguishes itself from sibling tools by being the primary entry point that calls other data sources automatically.
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?
Explicit guidance: 'Use this as the primary entry point for any company research — it calls all other data sources automatically.' This tells the agent when to use this tool versus the more specific sibling tools like get_financials or get_tech_stack.
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.
6 tool updates
v0.1.0- First observed
get_company_news - First observed
get_corporate_registry - First observed
get_financials - First observed
get_key_people - First observed
get_tech_stack - First observed
lookup_company
TDQS
Scored across 6 tools
Tools are mostly distinct, but lookup_company aggregates data from the other tools, creating potential overlap. Specialized tools have specific input constraints (e.g., domain vs. name), so they remain useful, but an agent might default to lookup_company and miss targeted functionality.
All tool names follow a consistent verb_noun pattern (get_*, lookup_*), with clear and descriptive nouns. The slight variation in verb ('get' vs 'lookup') is minor and does not hinder readability.
With 6 tools covering distinct aspects of company research (news, registry, financials, people, tech stack, comprehensive), the set is well-scoped without being overwhelming or insufficient.
The set covers core company data but has notable gaps: financials are limited to US public companies, and there is no tool for non-US private company financials or competitor analysis. The comprehensive lookup mitigates some gaps but cannot fill all.
Maintenance
Related MCP Connectors
Company enrichment for AI agents: firmographics, tech stack, headcount, funding, domain emails.
Free company data for AI agents: profiles, tech stacks, contact details and people. No sign-in.
Company profile lookup and B2B company search for AI agents.
Global B2B intelligence for AI agents: 35M+ companies, 1.6M sanctions, KYB pack. 78 tools.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceProvides real-time company verification and corporate intelligence by accessing global registries like UK Companies House, Singapore ACRA, and OpenCorporates. It enables AI agents to perform KYC tasks, retrieve company profiles, and conduct automated risk assessments for due diligence workflows.75 npmMIT
- AlicenseNot gradedqualityFmaintenanceProvides domain and brand intelligence for AI agents, including company enrichment, tech stack detection, and brand research from free public sources with an on-demand cache.MIT
- FlicenseAqualityDmaintenanceEnables AI agents to research companies and find contacts with structured data from multiple free sources, including company info, tech stack, and email addresses.3-
- AlicenseAqualityDmaintenanceProvides 17 research tools for comprehensive company intelligence, covering aspects like overview, products, financials, and competitors. Supports both natural language answers and structured JSON output for automation.18MIT