Korea Stay
Korean lodging: 84,490 stays from 4 government permit ledgers + KTO TourAPI, honest gaps
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Austrian Parliament: search speeches, votes, bills, inquiries, committees and members
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"parlament-at": {
"command": "npx",
"args": [
"-y",
"parlament-at-mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add parlament-at -- npx -y parlament-at-mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"parlament-at": {
"command": "npx",
"args": [
"-y",
"parlament-at-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"parlament-at": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"parlament-at-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub bernhardbrugger ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.5.1) เข้า registry 9 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Korea Stay, Contract Compass, SONAR: KYB due diligence
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Korean lodging: 84,490 stays from 4 government permit ledgers + KTO TourAPI, honest gaps
Korean public procurement law: rule-engine rulings, statutes search, live court precedents
Company register lookups and KYB checks: registries, sanctions, PEP, offshore leaks, adverse media.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
MCP server for the Austrian Parliament (Nationalrat and Bundesrat). Ask an LLM who sits where, which committee a bill is in, what was asked and answered, and what a politician actually said in the plenary - with a link to the official source for every result.
Status: v0.5, beta. Twelve tools, six prompts, 440+ offline tests (97 % line, 86 % branch coverage), verified against the live interface. Unofficial; not affiliated with the Parlamentsdirektion.
parl_sitzung lists the agenda items and _every speaker_, parl_rede returns one speech as text (interjections optional) in pieces of at most 45,000 characters, with offset paging.structuredContent + outputSchema on the list tools, six ready-made research prompts (including a fact-check workflow), size-bounded output. kompakt=true on the list tools gives one line per hit (measured on 50-hit lists: 34-50 % less text, links kept).DECISIONS.md; a live canary suite tells you when the interface changes.| Tool | What it does |
|---|---|
parl_abgeordnete | Find people by name, body, function; current members are marked and filterable (nur_aktuell, klub, bundesland) |
parl_person | Biography and mandates of one person with dates, club, career, education |
parl_reden_person | All plenary speeches of one person, newest first, with session and topic |
parl_anfragen | Inquiries or answers, newest first; filter by body, legislative period, search term |
parl_gegenstaende | List bills (Regierungsvorlagen), motions (Anträge), referendums, petitions, citizens' initiatives and EU documents by period and keyword |
parl_gegenstand | One item in detail: introducer/answerer with party, procedure, vote, Bundesgesetzblatt, PDFs, references |
parl_sitzungen | List plenary sessions of the Nationalrat and the Bundesrat |
parl_sitzung | Outline of one session: agenda items with times and every speaker; filter by speaker or agenda item |
parl_rede | One speech as text, in citable pieces |
parl_suche | Full-text search of all plenary speeches (and press releases, items): exact phrases, speaker, period, date range; every hit names the arguments for parl_rede |
parl_beschluesse | What a session decided per agenda item, with the vote by party and later steps (e.g. Bundesrat); press releases, agenda links |
parl_ausschuesse | Committees of a period; with suche= also chairs (with party), tasks, latest agendas, assigned items |
Prompts: faktencheck, rede_recherchieren, gesetz_verfolgen, anfragen_zum_thema, ausschuss_ueberblick, abgeordnete_profil - each chains the tools above for one research task.
Real output (from a live run, not mocked):
Example questions (all answered from live data during development):
parl_suche (modus="phrase", redner="Kickl") → parl_rede with the paragraph number → parl_beschluesse for the vote (the faktencheck prompt does this chain)parl_sitzung (redner="Kickl") → parl_redeparl_beschluesseparl_ausschuesse with suche="Finanzausschuss"parl_abgeordnete with klub, bundeslandparl_anfragen → parl_gegenstandA speech, as the server returns it (shortened):
Herbert Kickl (FPÖ) · 11.12–11.32
Quelle: https://www.parlament.gv.at/dokument/XXVIII/NRSITZ/30/A_-_11_12_46_00801352.html 45 Absätze, in eckigen Klammern nummeriert (mit Zwischenrufen gezählt); zum Zitieren die Nummer angeben, gezielt abrufbar mit absaetze="5-9".
[1] Abgeordneter Herbert Kickl (FPÖ): Danke schön, Herr Präsident! […] (Beifall bei der FPÖ. – Abg. Michael Hammer [ÖVP]: Na bravo!)
[Zeichen 1–857 von 21859; weiterlesen mit offset=857]
Needs Node 20 or newer. No API key, no account: the server only talks to www.parlament.gv.at. The package is on npm and listed in the official MCP Registry as io.github.bernhardbrugger/parlament-at-mcp.
Every client starts the server with the same command, npx -y parlament-at-mcp; only the place of the configuration differs. Restart the client after changing its configuration.
Claude Desktop (Settings → Developer → Edit config; %APPDATA%\Claude\claude_desktop_config.json on Windows, ~/Library/Application Support/Claude/claude_desktop_config.json on macOS)
{ "mcpServers": { "parlament-at": { "command": "npx", "args": ["-y", "parlament-at-mcp"] } } }
Claude Code
claude mcp add parlament-at -- npx -y parlament-at-mcp
VS Code (GitHub Copilot): .vscode/mcp.json in your project
{ "servers": { "parlament-at": { "type": "stdio", "command": "npx", "args": ["-y", "parlament-at-mcp"] } } }
Cursor: .cursor/mcp.json in your project, or ~/.cursor/mcp.json for all projects
{ "mcpServers": { "parlament-at": { "command": "npx", "args": ["-y", "parlament-at-mcp"] } } }
Windsurf: ~/.codeium/windsurf/mcp_config.json
{ "mcpServers": { "parlament-at": { "command": "npx", "args": ["-y", "parlament-at-mcp"] } } }
Any other MCP client that speaks stdio: run npx -y parlament-at-mcp.
Windows: if a client cannot find
npx, start it through the shell instead:"command": "cmd", "args": ["/c", "npx", "-y", "parlament-at-mcp"](this variant was tested).
What was tested: the
npxcommand itself (installed from the packed archive on Windows, started directly and throughcmd /c, with a live search), and Claude Desktop and Claude Code with a local build. The snippets for VS Code, Cursor and Windsurf follow those programs' documented configuration formats but have not been tried; please open an issue if one does not work.
Try it with: _"Welche Regierungsvorlagen hat der Nationalrat zuletzt beschlossen, und wie haben die Parteien abgestimmt?"_ or _"Hat jemand im Nationalrat den Satz 'Ich rede vom Staatsbesuch' gesagt? Wer, wann, in welcher Sitzung? Zitiere mit Absatznummer."_
git clone https://github.com/bernhardbrugger/parlament-at-mcp.git
cd parlament-at-mcp npm install && npm run build
Then point the client at the built file instead of npx, e.g. for Claude Desktop { "mcpServers": { "parlament-at": { "command": "node", "args": ["/absolute/path/to/parlament-at-mcp/dist/index.js"] } } } (on Windows with doubled backslashes: "C:\\Users\\you\\parlament-at-mcp\\dist\\index.js"). After a rebuild, restart the client: it keeps running the version it started with.
Remote (Streamable HTTP, stateless)
PORT=3000 npm run start:http # POST http://127.0.0.1:3000/mcp, health: GET /healthz
The HTTP mode is tested (in-process and with the built server over curl). Docker is experimental: the repository contains a Dockerfile, but it has never been built or run, so treat it as a starting point and please report problems.
The HTTP mode has no authentication and no rate limiting. Put a reverse proxy with TLS, authentication and rate limiting in front before exposing it; see SECURITY.md.
DECISIONS.md.parl_gegenstaende searches the _official keywords_ of bills; use parl_suche for full text. parl_suche finds that something was said, never whether it is true: fact-checking needs a second source, and the redner filter only looks at the first 300 hits of a search.npm run check # typecheck + lint + format check + offline tests
npm run test:coverage # coverage report npm run build && npm run smoke:li
ตัดมาแค่ช่วงต้น อ่านต่อใน repo