mcpField
E
exa-search

exa-search

github.com/ejirocodesDevelopment6235 installsUpdated 18w ago
Repository

About exa-search

exa-search is a skill reference for developers integrating Exa search in Python or TypeScript. It explains search modes, filters, content retrieval, and SDK usage patterns for finding and extracting web information.

Key features

  1. 01Guidance for auto, neural, and keyword search
  2. 02Domain and date filters
  3. 03Page text, highlights, and summaries
  4. 04Python and TypeScript SDK patterns

Use cases

  1. 01Choose a search mode for a query
  2. 02Narrow results by domain or publication date
  3. 03Retrieve page text or relevant snippets
  4. 04Use Exa search in a Python or TypeScript project

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/ejirocodes/agent-skills --skill exa-search

After installing, type/exa-searchin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
contents.md
filters.md
sdk-patterns.md
search-modes.md

Details

From the project README

Exa Search Integration

Quick Reference

TopicWhen to UseReference
Search ModesChoosing between auto, neural, and keyword searchsearch-modes.md
FiltersDomain, date, text, and category filteringfilters.md
ContentsText extraction, highlights, summaries, livecrawlcontents.md
SDK PatternsPython (exa_py) and TypeScript (exa-js) usagesdk-patterns.md

Essential Patterns

Basic Search (Python)
from exa_py import Exa

exa = Exa(api_key="your-api-key")  # or set EXA_API_KEY env var

results = exa.search_and_contents(
    "latest developments in quantum computing",
    type="auto",
    num_results=10,
    text=True,
    highlights=True
)

for result in results.results:
    print(f"{result.title}: {result.url}")
    print(result.text[:500])
Basic Search (TypeScript)
import Exa from "exa-js";

const exa = new Exa(process.env.EXA_API_KEY);

const results = await exa.searchAndContents(
  "latest developments in quantum computing",
  {
    type: "auto",
    numResults: 10,
    text: true,
    highlights: true,
  }
);

results.results.forEach((result) => {
  console.log(`${result.title}: ${result.url}`);
});
Search with Filters
results = exa.search_and_contents(
    "AI startup funding rounds",
    type="neural",
    num_results=10,
    include_domains=["techcrunch.com", "venturebeat.com"],
    start_published_date="2024-01-01",
    text={"max_characters": 2000},
    summary=True
)
Find Similar Links
similar = exa.find_similar_and_contents(
    "https://example.com/interesting-article",
    num_results=10,
    exclude_source_domain=True,
    text=True
)

Search Mode Selection

ModeWhen to UseNotes
autoDefault for most queriesExa optimizes between neural/keyword automatically
neuralNatural language, conceptual queriesBest for "what is...", "how to...", topic exploration
keywordExact matches, technical terms, namesBest for specific product names, error codes, proper nouns

Common Mistakes

  1. Using keyword for conceptual queries - Neural search understands intent better; use auto or neural for natural language questions
  2. Not setting text=True - Search returns URLs only by default; explicitly request content with text=True
  3. Ignoring highlights - Use highlights=True for relevant snippets without downloading full page text
  4. Missing API key - Set EXA_API_KEY environment variable or pass explicitly to constructor
  5. Over-filtering initially - Start with broad searches, then add domain/date filters to refine
  6. Not using summary - For RAG applications, summary=True provides concise context without full page text
  7. Expecting scores in auto mode - Relevance scores are only returned with type="neural"; auto mode doesn't include them

Comments

Markdown supported