eksisozluk.com (Ekşi Sözlük) — topics, entries & search

io.github.mohammad-abbasi-shPublished by GitHub account mohammad-abbasi-shv0.1.0Updated Nov 14, 2026

Unofficial read-only MCP server for eksisozluk.com: trending, entries, search, debe.

Overview

AI-generated overview

Unofficial read-only MCP server that lets an assistant browse eksisozluk.com: trending topics, topic search, entries, channels and debe.

What you can do
  • List trending topics (gündem) with title, slug, topic id, entry count and URL
  • Search topic titles by partial Turkish text
  • Read a topic's entries by slug--id or exact title, with recent, popular, last-24-hours or all-time sorting and paging
  • List topics in a channel such as spor, siyaset or bilim
  • Get yesterday's most-liked entries (debe) grouped by topic
  • Check whether eksisozluk.com is reachable (ok, blocked or error)
When to use it
Useful when you want an assistant to follow current Turkish public discussion, look up what Ekşi Sözlük users have written under a topic, or pull yesterday's top entries, without opening a browser.
Requirements
Runs locally over stdio as a Python package (uvx or pip install, needs uv or Python with mcp<2 and curl-cffi). No account, API key, cookie or environment variable is needed; it needs network access to eksisozluk.com.
Before you install
Entries are unfiltered user-generated text and may contain profanity, slang and strong opinions; the server returns them verbatim without filtering. It is unofficial and not affiliated with the site, so scraping may break or be blocked if the site changes or restricts access. Read-only: it does not post, vote or modify anything.

Installation

In SourceWeft

  1. Open eksisozluk.com (Ekşi Sözlük) — topics, entries & search in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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):

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

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

Tools

ToolDescription
eksisozluk_trendingGündem — trending topics right now; page (50/page), limit 1..50; title, slug, topic_id, entry_count, url
eksisozluk_search_topicsSearch topic titles (partial matches welcome) — query Turkish text (e.g. "ankar"); page, limit 1..50
eksisozluk_get_topicEntries 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_topicsTopics of one channel — channel e.g. "spor", "siyaset", "iliskiler", "yasam", "seyahat", "muzik", "tv", "haber", "bilim", "edebiyat", "kripto"; page, limit 1..50
eksisozluk_debeYesterday's most-liked entries (debe), grouped by topic; limit 1..12 groups
eksisozluk_healthCheck whether eksisozluk.com is reachable (ok / blocked / error)

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

json
{"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

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

Tests

bash
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

Source: README.md at commit 52907af

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestNov 14, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts