Skip to main content
Glama
echoloc-ai

echoloc

Official

echoloc 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.

Tools

Tool

What it does

search_companies_by_technologies

Find companies using given technologies (match any/all), ranked by usage. Case-insensitive, 10,000+ technologies tracked.

get_company_by_domain

Resolve a domain (e.g. walgreens.com) to a full profile: firmographics, hiring stats, tech stack with adoption context.

list_technologies

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-mcp

Raw 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 changetech_adopting, tech_replacing, tech_evaluating arrays 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.

Support

Questions, production keys (higher limits, bulk feeds, licensing): hello@echoloc.ai — we reply within one business day.

Available Tools

3 tools
get_company_by_domainGet company profile by domainA
Read-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).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesCompany primary domain

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 technologiesA
Read-onlyIdempotent

Catalog of all technologies in the dataset with per-technology company counts. sort='count' (most used first) or 'name'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sortNocount
page_sizeNo

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 technologiesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
matchNoany
page_sizeNo
technologiesYesTechnology names, e.g. ["Snowflake", "dbt"]

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 3 tool updatesv0.1.0
    • First observedget_company_by_domain
    • First observedlist_technologies
    • First observedsearch_companies_by_technologies

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

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.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (search_companies_by_technologies, get_company_by_domain, list_technologies). Naming is clear and predictable.

Tool Count5/5

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.

Completeness4/5

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

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    MCP 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.
    51
    46
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Hosted 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 starter
    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/echoloc-ai/echoloc-mcp'

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