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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.