Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

ihalent

von gulmezeren2-byteVersion 0.3.0i★ –iLäuft auf deinem Computer
Name in der Registryio.github.gulmezeren2-byte/ihalent

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

Turkish public-tender (EKAP) award intelligence: firm histories, discounts, competition, red flags

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio
  • Kategorie: Sonstiges

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Die Registry nennt keinen Schlüssel zum Eintragen.

Du brauchst

  • PyPIuv für Python installiert (für den Befehl uvx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "ihalent": {
      "command": "uvx",
      "args": [
        "ihalent"
      ]
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add ihalent -- uvx ihalent

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "ihalent": {
      "command": "uvx",
      "args": [
        "ihalent"
      ]
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "ihalent": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "ihalent"
      ]
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 9. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto gulmezeren2-byte bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Sonstigesi

  • Mehr Sterne als 0 % der anderen 18685 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 15 % der anderen 18685 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 18685 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist ihalent sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.3.0) kam vor 4 Monaten in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Bestax

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

von formulahendryAm Anfang↓ 66/Wo.★ 440Aktualisiert vor 14 Monaten

Läuft auf deinem Computer

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

von desktop-commanderWachsend★ 211Aktualisiert vor 4 Tagen

Läuft in der Cloud✓ desktopcommander.app

Bestax

Props, examples, CSS variables and Agent Skills for bestax-bulma React components (Bulma v1)

von allxsmithWachsend↓ 2910/Wo.Aktualisiert heute

Läuft auf deinem Computer

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

ihalent

Turkish public-tender award intelligence: who won, for how much, at what discount, against how many bidders.

Built on top of [saidsurucu/ihale-mcp](https://github.com/saidsurucu/ihale-mcp) — ihale-mcp reaches EKAP; ihalent structures and analyzes what it returns.

Every public tender in Turkey ends with a *Sonuç İlanı* — a result notice that states the estimate, the contract price, the winner, and how many firms bid. The notices are public. They are also one at a time, unstructured, and impossible to reason across: you cannot ask EKAP "what has this company won in the last two years" or "how far below estimate does this authority actually award." ihalent turns those notices into structured records and answers exactly those questions — firm histories, discount (kırım) distributions, and competition metrics — with every number traceable back to the notice it came from.

That is real output over nine real construction awards from the December-2025 / January-2026 window (in examples/). The -2.96% at the bottom of the range is not a bug: Istanbul University awarded a 615-million-lira campus job at 2.96% above its own estimate, through an emergency "pazarlık" procedure — a contract signed over the public estimate, which is precisely the kind of thing that should be easy to see and currently is not.

Why this exists

I'm an industrial engineer and I work in construction. When our firm weighs a public tender, the questions that decide the bid are all about other people's history: how far below estimate does this authority award, how many firms usually show up, what has a given competitor been winning and at what price. All of that is public — it is sitting in tens of thousands of result notices on EKAP — and none of it is queryable. So everyone rebuilds a private, partial version of it by hand, in spreadsheets, badly.

There is already an excellent tool for *reaching* this data: saidsurucu/ihale-mcp solved authenticated EKAP access and hands you the notices. ihalent is the layer above it — the one that turns a pile of notices into an answer. It does not re-scrape EKAP; it structures what you have collected and does the analytics that don't exist yet.

What it answers

A firm's history — every award across the dataset, folded across spelling variants:

$ ihalent firm examples/sample-awards.jsonl "ÖZDEN YEL"

ÖZDEN YEL wins: 1 joint ventures: 1 total contract value: 19.709.997,40 TL Discount (kırım) — ÖZDEN YEL ┌────────┬────────┬────────┬────────┐ │ mean │ median │ min │ max │ ├────────┼────────┼────────┼────────┤ │ 33.87% │ 33.87% │ 33.87% │ 33.87% │ └────────┴────────┴────────┴────────┘ based on all 1 awards. top awarding authorities: 1x DSİ 14. Bölge Müdürlüğü

Where the discounts are — grouped and sorted, highest first:

$ ihalent discounts examples/sample-awards.jsonl --by authority

Mean discount by authority ┌──────────────────────────────────┬────────┬────────┬────────┐ │ authority │ mean │ median │ awards │ ├──────────────────────────────────┼────────┼────────┼────────┤ │ DSİ 14. Bölge Müdürlüğü │ 33.87% │ 33.87% │ 1/1 │ │ Ziraat Bankası Genel Müdürlüğü │ 31.41% │ 31.41% │ 1/1 │ │ İstanbul YİKOB │ 26.98% │ 26.98% │ 1/1 │ │ İSKİ Genel Müdürlüğü │ 26.66% │ 26.66% │ 1/1 │ │ İTÜ Rektörlüğü │ 22.68% │ 22.68% │ 1/1 │ │ Esenler Belediyesi │ 21.99% │ 21.99% │ 1/1 │ │ Ağrı İl Özel İdaresi │ 19.99% │ 19.99% │ 1/1 │ │ Kağıthane Belediyesi │ 17.41% │ 17.41% │ 1/1 │ │ İstanbul Üniversitesi-Cerrahpaşa │ -2.96% │ -2.96% │ 1/1 │ └──────────────────────────────────┴────────┴────────┴────────┘ awards column: used / considered (excluded lack an estimate).

Competition — how many valid bids show up, and how often exactly one does (a single-bid award is a flag procurement watchdogs care about). It's in the overview above.

The one rule

A number is never shown without the ground it stands on. A mean discount always comes with "over how many awards, and how many were dropped for a missing estimate." A firm's total contract value says so when some of its wins had no published price, so you read it as a floor, not the full figure. A discount is None, never 0, when the estimate wasn't published — ihalent does not invent the numbers the government didn't print. Half the value of a tool like this is refusing to guess.

Install

pip install ihalent           # add [mcp] for the MCP server: pip install "ihalent[mcp]"

Or from source: pip install git+https://github.com/gulmezeren2-byte/ihalent.

The workflow

ihalent reads a JSONL file of awards. You produce it by collecting result notices — the easy path is ihale-mcp — and letting ihalent structure them:

# 1. collect: with ihale-mcp connected to your agent, save what its

get_tender_announcements returns (one or many tenders) to bundle.json

2. structure:

ihalent ingest bundle.json -o awards.jsonl

3. ask:

ihalent overview awards.jsonl ihalent firm awards.jsonl "ACME İNŞAAT" ihalent discounts awards.jsonl --by province --min 5

Every command takes --json for pipelines and agents. Or skip collection and try the bundled example directly:

git clone https://github.com/gulmezeren2-byte/ihalent && cd ihalent

python examples/build_sample.py # parses the real notices in examples/notices/ ihalent overview examples/sample-awards.jsonl

Commands

commandwhat it does
ihalent overview AWARDSvalue, discount, competition and the data gaps of a dataset
ihalent firm AWARDS "NAME"one company's wins, total value, discount, and where it wins
ihalent discounts AWARDS --by Xmean/median discount grouped by authority, province or tender_type
ihalent single-bid AWARDSawards with a single valid bid — no real competition (a watchdog flag)
ihalent concentration AWARDS [--authority X]winner concentration (HHI) — do the same few firms win everything?
ihalent flags AWARDSper-award red flags: single bid, near-estimate price, no estimate, high drop-off
ihalent parse NOTICE.mdone result notice → structured JSON
ihalent ingest BUNDLE.jsoncollected ihale-mcp/EKAP output → awards JSONL

Using it with AI agents

The result notice is unstructured text; the interesting questions are aggregate. That is an awkward fit for an agent working notice-by-notice, and a natural fit for a tool: --json output with stable fields, an exit code that means something, and a firm-name match that folds spelling variants so an agent doesn't have to.

There is a native MCP server (pip install 'ihalent[mcp]') that exposes the analytics as tools — overview, firm, discounts, concentration, flags, parse_notice, ingest_bundle — over a dataset you point it at:

IHALENT_AWARDS=awards.jsonl ihalent-mcp

No local Python? The Dockerfile builds the same server: docker build -t ihalent . && docker run --rm -i -e IHALENT_AWARDS=/data/awards.jsonl -v "$PWD:/data:ro" ihalent.

Pair it with ihale-mcp and an agent can collect notices and reason across them in one session: ihale-mcp fetches, ihalent structures and aggregates. The Python API (ihalent.ingest_bundle, ihalent.analytics.firm_profile) is three calls deep if you'd rather script it.

Scope, honestly

  • This is analytics, not a scraper. Collection is ihale-mcp's job (it does it well); ihalent deliberately owns the layer above and stays a pure function of the data you give it — no network, no signing keys, nothing that breaks when EKAP rotates a header.
  • Company-name folding is conservative on purpose. It merges legal-form suffixes and Turkish spelling variants, and it would rather show two rows for one firm than one row for two — so firm reports how many distinct spellings a query matched, and warns you if that is more than one.
  • The parser tracks one document: the result notice. Bid-level detail (who else bid, at what price) is not in the notice and so is not here. Discount is the estimate-to-contract gap, which the notice does carry.
  • Award values are nominal lira, as printed. Comparing 2023 and 2026 contracts is your analysis to make with the dates in hand; ihalent does not silently inflation-adjust.

What ihalent is not

It is not a replacement for ihale-mcp — it sits on top of it. It is not a live dashboard or a paid tender-alert service; it is a library and a CLI you point at data you control. And it does not redistribute a dataset: it ships the handful of real notices in examples/ and the code to structure your own.

A note on the data

Public-tender results are public information, published by the state for public scrutiny. ihalent structures what EKAP already discloses. Company names that appear are legal entities in their public commercial capacity, not private individuals.

How this project is built

I designed the model and the analytics and I review every line; I use AI agents (Claude Code) heavily for implementation speed, and the commit trailers say so. The contract is the tests — 80 of them, built on the exact JSON shapes EKAP and ihale-mcp emit, including a result notice with a negative discount and a cancelled tender. They don't care who typed them.

Related

  • [acikpoz](https://github.com/gulmezeren2-byte/acikpoz) — the other half of the Turkish public-procurement picture. ihalent reads the tender result notices that say who won and at what discount; acikpoz reads the unit-price (birim fiyat) catalogs that say what the work *should* have cost. Same discipline: every figure traceable to its source, nothing invented.

More tools by Eren Gülmez.

License

MIT — Mehmet Eren Gülmez

PopNx fragen