Skip to main content

eksisozluk-mcp 🇹🇷

mcp-name: io.github.mohammad-abbasi-sh/eksisozluk-mcp

Unofficial read-only MCP server for eksisozluk.com — Ekşi Sözlük, Türkiye's iconic collaborative dictionary and social platform ("kutsal bilgi kaynağı"), where users write short entries under topic titles. Trending topics (gündem), topic search, entries with şükela sorting, channels, and yesterday's most-liked entries (debe).

Built by Mohammad Abbasi as part of the "Turkey MCP factory" (Sepehr-style pipeline). Not affiliated with eksisozluk.com or Ekşi Sözlük.

Content note: entries are unfiltered user-generated text — they may contain profanity, slang and strong opinions. The server returns what the site publishes, verbatim; nothing is censored or rewritten.

For AI agents

Add to your MCP client config (stdio):

{
  "mcpServers": {
    "eksisozluk": {
      "command": "uvx",
      "args": ["eksisozluk-mcp==0.1.0"]
    }
  }
}

Or run locally: python -m eksisozluk_mcp.server (needs mcp<2, curl-cffi).

Tools

Tool Description
eksisozluk_trending Gündem — trending topics right now; page (50/page), limit 1..50; title, slug, topic_id, entry_count, url
eksisozluk_search_topics Search topic titles (partial matches welcome) — query Turkish text (e.g. "ankar"); page, limit 1..50
eksisozluk_get_topic Entries of one topic — topic as "slug--id" (e.g. "ankara--32788") or an EXACT topic title (resolved via the site's /?q= redirect); sort ("recent" / "popular" şükela / "dailynice" son 24 saat / "nice" şükela tümü); page (10/page, page_count returned); limit 1..10
eksisozluk_channel_topics Topics of one channel — channel e.g. "spor", "siyaset", "iliskiler", "yasam", "seyahat", "muzik", "tv", "haber", "bilim", "edebiyat", "kripto"; page, limit 1..50
eksisozluk_debe Yesterday's most-liked entries (debe), grouped by topic; limit 1..12 groups
eksisozluk_health Check whether eksisozluk.com is reachable (ok / blocked / error)

Example output (eksisozluk_get_topic / ankara, 2026-11-12):

{"topic": "ankara", "topic_id": "32788", "sort": "recent",
 "page": 1, "page_count": 3621,
 "entries": [{"entry_id": "3820", "author": "zomzom",
  "date": "28.03.1999 ~ 20.11.2005 22:40",
  "text": "yapay kent. baskent olmasaydi boktan bi yer olacakti muhakkak.",
  "url": "https://eksisozluk.com/entry/3820"}]}

How it works

eksisozluk.com serves its pages fully server-rendered — no login, no API key, no session cookies. Topic lists are <ul class="topic-list partial"> rows (<a href="/<slug>--<id>">title <small>count</small></a>, 50 per page, ?p=2 pagination). Topic pages list 10 entries per page in <ul id="entry-item-list"> (<li data-id> with a <div class="content">, author link /biri/<nick>, date link /entry/<id>); the pager carries data-pagecount (ankara: 3,621 pages; starbucks: 888). Sort modes are ?a=popular (şükela), ?a=dailynice (son 24 saat), ?a=nice (şükela tümü). The search box's exact-title lookup (/?q=<title>) 302-redirects to the topic only for an exact title and 404s otherwise — partial matches go through /basliklar/ara?SearchText=. Debe (/debe) groups yesterday's most-liked entries by topic, each headed by an <h1 id="title">. Transport uses Chrome TLS impersonation (curl-cffi, chrome120 with rotation); requests are spaced ~0.8s apart; everything is read-only.

Install

uvx eksisozluk-mcp==0.1.0   # run directly (needs uv)
# or
pip install eksisozluk-mcp==0.1.0
eksisozluk-mcp    # starts the MCP server on stdio

Tests

python -m venv .venv && .venv/bin/pip install -e .
.venv/bin/python -m unittest discover -s tests -v

Offline tests run on recorded fixtures (real pages fetched 2026-11-12); live tests hit eksisozluk.com. Tests green at build time (see repo for counts) plus an MCP stdio smoke test.

Roadmap

  • Author pages (/biri/<nick> — an author's recent entries)
  • Entry comments (yorum) under an entry
  • "tarihte bugün" (on this day) topics

License

MIT — see LICENSE.


Built by Mohammad Abbasi — Almanibama · mabbasi.ir

Metadata

Release files for eksisozluk-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eksisozluk-mcp 0.1.0
File Size Uploaded Provenance Actions
eksisozluk_mcp-0.1.0.tar.gz 185.4 kB With provenance Details for eksisozluk_mcp-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for eksisozluk-mcp 0.1.0
File Interpreter ABI Platform Actions
eksisozluk_mcp-0.1.0-py3-none-any.whl Python 3 none any Details for eksisozluk_mcp-0.1.0-py3-none-any.whl

Total release size: 199.1 kB

Release files / eksisozluk_mcp-0.1.0.tar.gz

Download URL eksisozluk_mcp-0.1.0.tar.gz
Size 185.4 kB
Tags Source
SHA-256 checksum
How to use checksums
949bc0e233999ba3cd52c583876caeafae3c917b24ed50ea06b18ba0c75e7515
BLAKE2b-256 checksum
How to use checksums
59ac92ca4d4fa2c010e559e508aaeebcdcae84469de79370fa9a5b3a3c2fa96a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 14, 2026.

Transparency log

Release files / eksisozluk_mcp-0.1.0-py3-none-any.whl

Download URL eksisozluk_mcp-0.1.0-py3-none-any.whl
Size 13.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4bc313b9d666819cff3ae05e14782ecb6a9cb8abdcfe3408c9331fefc0b21d0e
BLAKE2b-256 checksum
How to use checksums
6943d7cc0e05dd99578572ae46e590e9ccac6353b6bb5cdf8dd56bdf9ecf41de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 14, 2026.

Transparency log

Security for eksisozluk-mcp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for eksisozluk_mcp-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 14, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page