echoloc
Officialecholoc MCP server — company technographics for AI agents
Remote Model Context Protocol server for the echoloc company-intelligence dataset: search 760,000+ companies by the technologies they use — with direction of change (what each company is adopting, replacing, and evaluating), hiring signals, and firmographics. Signals are extracted from millions of public job posts, so the data covers backend, data, cloud, and AI tooling that never appears in website source.
Endpoint:
https://api.echoloc.ai/mcp(Streamable HTTP, stateless)Registry name:
ai.echoloc/company-technographicsAuth:
X-API-Keyheader (also acceptsAuthorization: Bearer)Free key: 100 requests/month, instant — sign up and copy it from echoloc.ai/app/api
Tools
Tool | What it does |
| Find companies using given technologies (match |
| Resolve a domain (e.g. |
| The full technology catalog with per-technology company counts. |
All tools are read-only (readOnlyHint: true). Discovery (initialize,
tools/list) requires no key; tool calls consume 1 credit each.
Related MCP server: StackSwap
Quick start
Claude Code
claude mcp add --transport http echoloc https://api.echoloc.ai/mcp \
--header "X-API-Key: YOUR_API_KEY"Cursor / any MCP client
{
"mcpServers": {
"echoloc": {
"url": "https://api.echoloc.ai/mcp",
"headers": { "X-API-Key": "YOUR_API_KEY" }
}
}
}Then ask things like:
Which financial-services companies are adopting Snowflake right now?
Pull the tech stack and hiring signals for walgreens.com.
Which companies are actively replacing VMware?
stdio bridge (Claude Desktop, local runners)
For stdio-only MCP clients this repo ships a dependency-free bridge
(mcp_stdio_bridge.py) that forwards JSON-RPC to the
hosted server:
{
"mcpServers": {
"echoloc": {
"command": "python3",
"args": ["/path/to/mcp_stdio_bridge.py"],
"env": { "ECHOLOC_API_KEY": "YOUR_API_KEY" }
}
}
}Or via Docker:
docker build -t echoloc-mcp .
docker run -i --rm -e ECHOLOC_API_KEY=YOUR_API_KEY echoloc-mcpRaw JSON-RPC example
curl https://api.echoloc.ai/mcp \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_companies_by_technologies","arguments":{"technologies":["Snowflake"],"match":"any","page_size":10}}}'What makes the data different
Most technographics are scraped from website source and can only see frontend tools. echoloc reads what companies say in their own hiring:
Direction of change —
tech_adopting,tech_replacing,tech_evaluatingarrays on every profile, not just a static "uses X" flag.Hiring context — active jobs, hiring velocity, departments, leadership hires.
Depth — 360,000+ companies with detected stacks across 10,000+ technologies, refreshed daily.
Links
Agent fast lane: echoloc.ai/for-agents
REST API docs: echoloc.ai/developers · OpenAPI spec
LLM-readable summary: llms.txt · llms-full.txt
Methodology: echoloc.ai/methodology
Research built on this dataset: echoloc.ai/research
Support
Questions, production keys (higher limits, bulk feeds, licensing): hello@echoloc.ai — we reply within one business day.
Available Tools
3 toolsget_company_by_domainGet company profile by domainARead-onlyIdempotent
Resolve a company domain (e.g. 'walgreens.com') to its full profile: firmographics, hiring stats, and the technology stack with adoption context (using / adopting / replacing / evaluating).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company primary domain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the behavior is safe. The description adds valuable context about the response content (firmographics, hiring stats, tech stack with adoption context), going beyond annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the tool's purpose and streams the output details without unnecessary words.
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 single required parameter, no output schema, and annotations covering safety, the description is complete. It specifies what the tool returns and includes an example. Sibling tools are listed but not contrasted, which is acceptable.
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%, so baseline is 3. The description adds an example ('walgreens.com') and explains what the domain resolves to, but does not significantly enhance the schema's own parameter description ('Company primary domain').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'resolve' and the resource 'company domain to its full profile', including specific data categories (firmographics, hiring stats, tech stack with adoption context). It effectively distinguishes from siblings like search_companies_by_technologies and list_technologies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a company domain is known and a full profile is needed. It provides an example domain. However, it does not explicitly state when not to use or contrast with sibling tools beyond their names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_technologiesList tracked technologiesARead-onlyIdempotent
Catalog of all technologies in the dataset with per-technology company counts. sort='count' (most used first) or 'name'.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| sort | No | count | |
| page_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint true, so the description adds no extra behavioral context beyond the sort behavior. No mention of data freshness, rate limits, or other traits. The description does not contradict annotations.
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 exceptionally concise: two sentences with no filler. Every word adds value. It front-loads the purpose and immediately specifies the key parameter behavior.
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 read-only list tool with 3 parameters and no output schema, the description covers the core behavior and sort options. However, it does not mention pagination limits or the returned data structure, which is a minor gap. Overall adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the sort parameter (enum values) but omits page and page_size entirely. However, the schema has defaults and constraints for those, so an agent could infer. This is average coverage given the tool's simplicity.
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 lists all technologies with company counts, using the verb 'Catalog' and specifying the resource 'technologies'. It distinguishes from siblings like search_companies_by_technologies (which filters by tech) and get_company_by_domain (retrieves a single company).
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 gives sort options (count, name) but does not explicitly state when to use this tool versus the siblings. The context is implied as an overview of all technologies, but lacks explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companies_by_technologiesSearch companies by technologiesARead-onlyIdempotent
Find companies using the given technologies, ranked by usage. Names are case-insensitive ('snowflake' == 'Snowflake'); 10,000+ technologies are tracked (use list_technologies to explore). match='any' needs at least one technology, 'all' needs every one.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| match | No | any | |
| page_size | No | ||
| technologies | Yes | Technology names, e.g. ["Snowflake", "dbt"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint and idempotentHint. Description adds valuable behavioral context: case-insensitive search, 10,000+ technologies tracked, ranking by usage, and match logic. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the main purpose. Every sentence adds value with no redundancy. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters and no output schema, description covers main behavior, match modes, case-insensitivity, and references sibling tool. Lacks explanation of ranking method and pagination, but sufficient for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (25%), but description compensates by explaining case-insensitivity for 'technologies' array and behavior of 'match' parameter. Does not cover 'page' or 'page_size' beyond schema defaults.
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?
Description clearly states it finds companies using given technologies, ranked by usage, and specifies case-insensitivity. It explicitly references sibling tool list_technologies for exploration, distinguishing purpose.
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?
Explains when to use the tool (find companies by technologies) and details match parameter behavior ('any' needs at least one, 'all' needs every one). Mentions case-insensitivity and suggests list_technologies for exploration. Lacks explicit when-not-to-use guidance but is clear overall.
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.
3 tool updates
v0.1.0- First observed
get_company_by_domain - First observed
list_technologies - First observed
search_companies_by_technologies
TDQS
Scored across 3 tools
Each tool serves a distinct purpose: searching companies by tech, retrieving a specific company's profile, and listing technologies. There is no overlap or ambiguity.
All tool names follow a consistent verb_noun pattern (search_companies_by_technologies, get_company_by_domain, list_technologies). Naming is clear and predictable.
With 3 tools, the server is tightly scoped to its domain (company tech intelligence). Each tool is essential and covers the core functionality without bloat.
The tools enable searching, retrieving details, and exploring the technology catalog. Minor gaps exist (e.g. no direct company search by name), but the set covers the primary workflows well.
Maintenance
Related MCP Connectors
Search 760K+ companies by technographics with direction of change: adopting, replacing, evaluating
The Google for AI agents — company intel, competitor tracking, market research via MCP. JSON output
CompanyLens is a remote MCP server giving AI agents instant access to official company registry data across 19 jurisdictions in Europe, the Americas, and Asia-Pacific. Eighteen read-only tools let you search companies and people, look up officers and beneficial owners, map corporate networks through shared directors, screen names against the UK disqualified directors register, find every company at a registered address, and pull filing history — all from a single connector. Visit our website: https://companylens.io
Track agent ROI and enrich companies via MCP. Remote, OAuth 2.1, no install or keys.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for Pubrio — the glocalized business data layer for AI agents. 50 tools to search companies, people, jobs, news & ads, enrich records, reveal contacts, manage signal monitors, and access reference data from around the globe.5146MIT
- AlicenseNot gradedqualityCmaintenanceHosted HTTP MCP server for B2B SaaS GTM stack research. 8 read-only tools wrapping stackswap.ai: search ~400 GTM tools, find curated overlaps (104 hand-verified pairs), suggest AI-native swaps (Outreach → Smartlead, ZoomInfo → Apollo), compare vendors head-to-head, run preview spend audits, get full tool profiles, get partner recommendations with implementation hours, and pull recommended starterMIT
- AlicenseNot gradedqualityDmaintenanceDomain -> company intelligence for AI agents. Look up company name, country, contacts, and social profiles from any MCP-compatible client.6MIT
- AlicenseAqualityAmaintenanceDetects a company's technology stack from its public web presence. Returns structured tech signals for sales targeting and competitive analysis.12011MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/echoloc-ai/echoloc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server