wikipedia-search

Search and fetch structured content from Wikipedia using the MediaWiki API for reliable, encyclopedic information

1,802 stars

Best use case

wikipedia-search is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Search and fetch structured content from Wikipedia using the MediaWiki API for reliable, encyclopedic information

Teams using wikipedia-search should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/wikipedia-search/SKILL.md --create-dirs "https://raw.githubusercontent.com/FreedomIntelligence/OpenClaw-Medical-Skills/main/skills/wikipedia-search/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/wikipedia-search/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How wikipedia-search Compares

Feature / Agentwikipedia-searchStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Search and fetch structured content from Wikipedia using the MediaWiki API for reliable, encyclopedic information

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Wikipedia Search Skill

This skill enables Claude to search and fetch content from Wikipedia using the MediaWiki API. It provides more reliable, structured access to Wikipedia than general web search, with support for summaries, full article content, and multi-language access.

## When to Use

Use this skill when you need:

- **Encyclopedic knowledge** — Factual information about people, places, events, concepts
- **Historical information** — Well-documented historical facts, dates, and events
- **Scientific and technical concepts** — Definitions, explanations, and overviews
- **Biographical information** — Details about notable people
- **Geographic information** — Countries, cities, landmarks, and their details
- **Quick fact verification** — Cross-checking encyclopedic facts
- **Structured content** — Need article sections, categories, and links
- **Multi-language content** — Access Wikipedia in languages other than English

## When NOT to Use

Avoid using this skill for:

- **Current events or breaking news** — Wikipedia may not be up-to-date for very recent events (use web-search instead)
- **Controversial or disputed topics** — Wikipedia can have bias or edit wars; use multiple sources
- **Opinions or analysis** — Wikipedia aims for neutral point of view, not opinion
- **How-to guides or tutorials** — Wikipedia is encyclopedic, not instructional (look for specialized resources)
- **Code examples or technical documentation** — Use official docs or specialized sites
- **Personal or local information** — Wikipedia only covers notable topics
- **Real-time data** — Stock prices, weather, sports scores (use web-search instead)

## Usage

The skill is invoked by running the wiki script with a query:

```bash
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "your query" [options]
```

### Options

- `--mode [search|summary|full]` — Operation mode (default: summary)
  - `search`: Search for page titles matching the query
  - `summary`: Get a concise summary of a specific page
  - `full`: Get the complete article with sections and structure
- `--sentences N` — Number of sentences for summary mode (default: 5)
- `--lang CODE` — Language code (default: en)

### Common Language Codes

- `en` — English
- `es` — Spanish
- `fr` — French
- `de` — German
- `it` — Italian
- `ja` — Japanese
- `zh` — Chinese
- `ru` — Russian
- `ar` — Arabic
- `pt` — Portuguese

## Examples

### 1. Search for Page Titles

Search for Wikipedia articles matching a term:

```bash
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "quantum computing" --mode search
```

Output:
```json
{
  "mode": "search",
  "query": "quantum computing",
  "results": [
    {
      "title": "Quantum computing",
      "description": "Study of computers based on quantum phenomena",
      "url": "https://en.wikipedia.org/wiki/Quantum_computing"
    },
    ...
  ],
  "count": 10
}
```

### 2. Get a Summary

Get a concise summary of a Wikipedia page:

```bash
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "Python (programming language)" --mode summary
```

Or with custom sentence count:

```bash
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "Albert Einstein" --mode summary --sentences 3
```

Output:
```json
{
  "mode": "summary",
  "title": "Albert Einstein",
  "exists": true,
  "url": "https://en.wikipedia.org/wiki/Albert_Einstein",
  "summary": "Albert Einstein was a German-born theoretical physicist...",
  "categories": ["1879 births", "1955 deaths", "German physicists", ...]
}
```

### 3. Get Full Article Content

Retrieve the complete article with sections:

```bash
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "Machine learning" --mode full
```

Output:
```json
{
  "mode": "full",
  "title": "Machine learning",
  "exists": true,
  "url": "https://en.wikipedia.org/wiki/Machine_learning",
  "summary": "Machine learning is a field of study in artificial intelligence...",
  "sections": [
    {
      "title": "History and relationships to other fields",
      "level": 0,
      "text": "..."
    },
    ...
  ],
  "categories": [...],
  "links": ["Artificial intelligence", "Neural network", ...]
}
```

### 4. Search in Different Languages

Search or fetch content in other languages:

```bash
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "Paris" --mode summary --lang fr
```

```bash
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "東京" --mode summary --lang ja
```

## Workflow

When using this skill, follow this workflow:

### For Unknown Topics (Search First)

1. **Search for titles** — Use `--mode search` to find relevant articles
2. **Choose the right article** — Pick the most relevant title from results
3. **Get summary or full content** — Fetch the article with `--mode summary` or `--mode full`
4. **Parse JSON output** — Extract relevant information from structured data
5. **Cite the source** — Include Wikipedia URL when presenting information

### For Known Topics (Direct Fetch)

1. **Use exact or close title** — Wikipedia is good at matching similar titles
2. **Fetch summary** — Use `--mode summary` for quick facts
3. **Get full content if needed** — Use `--mode full` for comprehensive information
4. **Extract sections** — Parse specific sections for focused information

### JSON Output Structure

#### Search Mode
```json
{
  "mode": "search",
  "query": "original query",
  "results": [
    {
      "title": "Page Title",
      "description": "Brief description",
      "url": "https://en.wikipedia.org/wiki/Page_Title"
    }
  ],
  "count": 10
}
```

#### Summary Mode
```json
{
  "mode": "summary",
  "title": "Article Title",
  "exists": true,
  "url": "https://en.wikipedia.org/wiki/Article_Title",
  "summary": "Summary text...",
  "categories": ["Category1", "Category2"]
}
```

#### Full Mode
```json
{
  "mode": "full",
  "title": "Article Title",
  "exists": true,
  "url": "https://en.wikipedia.org/wiki/Article_Title",
  "summary": "Summary text...",
  "sections": [
    {
      "title": "Section Name",
      "level": 0,
      "text": "Section content..."
    }
  ],
  "categories": ["Category1", "Category2"],
  "links": ["Related Page 1", "Related Page 2"]
}
```

#### Error Response
```json
{
  "mode": "summary",
  "title": "Nonexistent Page",
  "exists": false,
  "error": "Page not found"
}
```

## Best Practices

### Query Formulation

- **Use specific titles** — "Python (programming language)" not just "Python"
- **Try exact names** — Wikipedia handles disambiguation well
- **Use search mode for exploration** — When unsure of exact title, search first
- **Check for disambiguation pages** — Some terms have multiple meanings

### Mode Selection

- **search** — When you don't know the exact page title or want to explore topics
- **summary** — For quick facts, definitions, or overviews (most common use case)
- **full** — When you need detailed information, specific sections, or comprehensive coverage

### Multi-Language Usage

- **Start with English** — English Wikipedia is often most comprehensive
- **Use native language for local topics** — Local events, culture, geography may be better in native language
- **Cross-reference languages** — Different language versions may have different information
- **Match query language** — If searching in French, use --lang fr

### Information Extraction

- **Use sections strategically** — In full mode, target specific sections for focused information
- **Check categories** — Categories help understand topic classification
- **Follow links** — Related links can lead to more detailed subtopics
- **Verify with summary** — Always present in page summary for quick fact-checking

## Attribution Guidelines

When presenting Wikipedia content to users:

- **Always cite Wikipedia** — Include the page URL: `[Article Title](URL)`
- **Note it's from Wikipedia** — Be transparent: "According to Wikipedia..."
- **Include publication status** — Wikipedia is continuously edited; information may change
- **Cross-reference for important facts** — For critical information, verify with additional sources

Example:

```
According to Wikipedia, Python is a high-level, general-purpose programming
language that emphasizes code readability with the use of significant indentation.

Source:
- [Python (programming language) - Wikipedia](https://en.wikipedia.org/wiki/Python_(programming_language))
```

## Error Handling

The script handles common errors gracefully:

### Page Not Found

If a page doesn't exist:
- JSON will include `"exists": false` and `"error": "Page not found"`
- Try using search mode first to find the correct title
- Check spelling and try variations
- Consider disambiguation pages

### Network Failures

If the API request fails:
- Error message printed to stderr
- Exit code will be non-zero
- Retry after a moment or check internet connection

### Import Errors

If `Wikipedia-API` library is missing:
- Script automatically attempts to install it
- Requires `pip` to be available
- May require `--break-system-packages` flag in some environments
- If auto-install fails, manually install: `pip install Wikipedia-API`

### Rate Limiting

Wikipedia's API is generally permissive:
- No authentication required for reading
- Reasonable use limits (shouldn't hit them in normal usage)
- If rate limited, wait a few seconds before retrying

## Technical Details

### Dependencies

- **Python 3.x** — Required (python3 command must be available)
- **Wikipedia-API** — Auto-installed if missing
- **pip** — Required for dependency installation

### Auto-Installation

The script automatically installs missing dependencies:

```python
subprocess.check_call([
    sys.executable, "-m", "pip", "install",
    "Wikipedia-API", "--break-system-packages", "--quiet"
])
```

The `--break-system-packages` flag is needed for externally-managed Python environments (common on modern Linux distributions and macOS with Homebrew Python).

### API Details

- Uses the **MediaWiki API** via the Wikipedia-API Python library
- OpenSearch API for title search functionality
- User agent: `OpenClaw-WikipediaSearch/1.0`
- No API key required
- Free and open access

### Exit Codes

- `0` — Success
- `1` — General error (page not found, network failure, invalid query, etc.)
- `2` — Import error (dependency installation failed)

## Limitations

### Wikipedia Constraints

- **Not always current** — Wikipedia can lag behind breaking news by hours or days
- **Coverage varies** — Obscure topics may have minimal or no articles
- **Neutral POV** — Wikipedia strives for neutrality, which may omit certain perspectives
- **No original research** — Wikipedia doesn't contain new analysis or unpublished information
- **Notability requirements** — Many topics aren't notable enough for Wikipedia inclusion

### Technical Limitations

- **Section text truncated** — In full mode, sections limited to 5000 characters each to prevent huge responses
- **Limited links** — Only first 50 links returned in full mode
- **Limited categories** — Only first 10 categories returned
- **No images** — Script returns text only, not images or media
- **No infobox data** — Structured infobox data not easily accessible via this API

### Language Support

- **Quality varies by language** — English Wikipedia is most comprehensive
- **Translation issues** — Titles don't always translate directly between languages
- **Script mixing** — Some languages use different scripts (Arabic, Chinese, etc.)

## Troubleshooting

### Script Not Executable

If you get "Permission denied" error:

```bash
chmod +x ~/.openclaw/skills/wikipedia-search/scripts/wiki.py
```

### Python Not Found

If `python3` command doesn't exist, create an alias or use full path to Python interpreter.

### Installation Fails in Virtual Environment

If auto-install fails due to venv restrictions, manually install globally:

```bash
python3 -m pip install Wikipedia-API --user
```

### Page Not Found for Valid Topic

- Try search mode first: `--mode search` to find exact title
- Check for spelling variations
- Try disambiguation: add context in parentheses (e.g., "Mercury (planet)" vs "Mercury (element)")
- Verify the page exists by visiting Wikipedia directly

### Non-English Characters Not Displaying

- Ensure your terminal supports UTF-8 encoding
- JSON output uses `ensure_ascii=False` for proper Unicode support
- May need to set `LANG=en_US.UTF-8` or similar environment variable

## Use Cases and Examples

### Research Starting Point

```bash
# Start with search
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "neural networks" --mode search

# Get summary of main article
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "Artificial neural network" --mode summary

# Get full content for deep dive
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "Artificial neural network" --mode full
```

### Quick Facts

```bash
# Who is someone?
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "Marie Curie" --mode summary --sentences 2

# What is something?
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "Blockchain" --mode summary --sentences 3

# Where is something?
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "Machu Picchu" --mode summary
```

### Historical Information

```bash
# Historical events
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "World War II" --mode full

# Historical figures
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "Leonardo da Vinci" --mode summary --sentences 10
```

### Scientific Concepts

```bash
# Physics
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "Quantum entanglement" --mode summary

# Biology
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "DNA" --mode full

# Chemistry
python ~/.openclaw/skills/wikipedia-search/scripts/wiki.py "Periodic table" --mode summary
```

## See Also

- [Wikipedia API Documentation](https://www.mediawiki.org/wiki/API:Main_page) — Official MediaWiki API docs
- [Wikipedia-API Python Library](https://github.com/martin-majlis/Wikipedia-API) — Upstream library documentation
- `../web-search/` — Complementary skill for current events and real-time information

## Notes

- This skill complements the **web-search** skill: use Wikipedia for encyclopedic knowledge and web-search for current events
- Wikipedia content is licensed under CC BY-SA, always attribute properly
- For critical information, cross-reference with other authoritative sources
- Wikipedia's strength is breadth of coverage and structured information, not real-time updates

Related Skills

tooluniverse-target-research

1802
from FreedomIntelligence/OpenClaw-Medical-Skills

Gather comprehensive biological target intelligence from 9 parallel research paths covering protein info, structure, interactions, pathways, expression, variants, drug interactions, and literature. Features collision-aware searches, evidence grading (T1-T4), explicit Open Targets coverage, and mandatory completeness auditing. Use when users ask about drug targets, proteins, genes, or need target validation, druggability assessment, or comprehensive target profiling.

tooluniverse-literature-deep-research

1802
from FreedomIntelligence/OpenClaw-Medical-Skills

Conduct comprehensive literature research with target disambiguation, evidence grading, and structured theme extraction. Creates a detailed report with mandatory completeness checklist, biological model synthesis, and testable hypotheses. For biological targets, resolves official IDs (Ensembl/UniProt), synonyms, naming collisions, and gathers expression/pathway context before literature search. Default deliverable is a report file; for single factoid questions, uses a fast verification mode and may include an inline answer. Use when users need thorough literature reviews, target profiles, or to verify specific claims from the literature.

tooluniverse-drug-research

1802
from FreedomIntelligence/OpenClaw-Medical-Skills

Generates comprehensive drug research reports with compound disambiguation, evidence grading, and mandatory completeness sections. Covers identity, chemistry, pharmacology, targets, clinical trials, safety, pharmacogenomics, and ADMET properties. Use when users ask about drugs, medications, therapeutics, or need drug profiling, safety assessment, or clinical development research.

tooluniverse-disease-research

1802
from FreedomIntelligence/OpenClaw-Medical-Skills

Generate comprehensive disease research reports using 100+ ToolUniverse tools. Creates a detailed markdown report file and progressively updates it with findings from 10 research dimensions. All information includes source references. Use when users ask about diseases, syndromes, or need systematic disease analysis.

research-lookup

1802
from FreedomIntelligence/OpenClaw-Medical-Skills

Look up current research information using Perplexity's Sonar Pro Search or Sonar Reasoning Pro models through OpenRouter. Automatically selects the best model based on query complexity. Search academic papers, recent studies, technical documentation, and general research information with citations.

research-grants

1802
from FreedomIntelligence/OpenClaw-Medical-Skills

Write competitive research proposals for NSF, NIH, DOE, and DARPA. Agency-specific formatting, review criteria, budget preparation, broader impacts, significance statements, innovation narratives, and compliance with submission requirements.

pubmed-search

1802
from FreedomIntelligence/OpenClaw-Medical-Skills

Search PubMed for scientific literature. Use when the user asks to find papers, search literature, look up research, find publications, or asks about recent studies. Triggers on "pubmed", "papers", "literature", "publications", "research on", "studies about".

perplexity-search

1802
from FreedomIntelligence/OpenClaw-Medical-Skills

Perform AI-powered web searches with real-time information using Perplexity models via LiteLLM and OpenRouter. This skill should be used when conducting web searches for current information, finding recent scientific literature, getting grounded answers with source citations, or accessing information beyond the model's knowledge cutoff. Provides access to multiple Perplexity models including Sonar Pro, Sonar Pro Search (advanced agentic search), and Sonar Reasoning Pro through a single OpenRouter API key.

patents-search

1802
from FreedomIntelligence/OpenClaw-Medical-Skills

Search global patents with natural language queries. Prior art, patent landscapes, and innovation tracking via Valyu.

open-targets-search

1802
from FreedomIntelligence/OpenClaw-Medical-Skills

Search Open Targets drug-disease associations with natural language queries. Target validation powered by Valyu semantic search.

multi-search-engine

1802
from FreedomIntelligence/OpenClaw-Medical-Skills

Multi search engine integration with 17 engines (8 CN + 9 Global). Supports advanced search operators, time filters, site search, privacy engines, and WolframAlpha knowledge queries. No API keys required.

medrxiv-search

1802
from FreedomIntelligence/OpenClaw-Medical-Skills

Search medRxiv medical preprints with natural language queries. Powered by Valyu semantic search.