GitHub
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Log amateur-radio QSOs to N3FJP logging software over its TCP API.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
N3FJP_HOST, N3FJP_PORT, N3FJP_TIMEOUT, N3FJP_ALLOW_DB_WIPEต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"n3fjp": {
"command": "uvx",
"args": [
"n3fjp-mcp"
],
"env": {
"N3FJP_HOST": "ใส่ค่าของคุณ",
"N3FJP_PORT": "ใส่ค่าของคุณ",
"N3FJP_TIMEOUT": "ใส่ค่าของคุณ",
"N3FJP_ALLOW_DB_WIPE": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add n3fjp --env N3FJP_HOST='ใส่ค่าของคุณ' --env N3FJP_PORT='ใส่ค่าของคุณ' --env N3FJP_TIMEOUT='ใส่ค่าของคุณ' --env N3FJP_ALLOW_DB_WIPE='ใส่ค่าของคุณ' -- uvx n3fjp-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"n3fjp": {
"command": "uvx",
"args": [
"n3fjp-mcp"
],
"env": {
"N3FJP_HOST": "ใส่ค่าของคุณ",
"N3FJP_PORT": "ใส่ค่าของคุณ",
"N3FJP_TIMEOUT": "ใส่ค่าของคุณ",
"N3FJP_ALLOW_DB_WIPE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"n3fjp": {
"type": "stdio",
"command": "uvx",
"args": [
"n3fjp-mcp"
],
"env": {
"N3FJP_HOST": "ใส่ค่าของคุณ",
"N3FJP_PORT": "ใส่ค่าของคุณ",
"N3FJP_TIMEOUT": "ใส่ค่าของคุณ",
"N3FJP_ALLOW_DB_WIPE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
N3FJP_HOST envN3FJP_PORT envN3FJP_TIMEOUT envN3FJP_ALLOW_DB_WIPE envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub sbrunner-atx ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.3.2) เข้า registry 2 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
MCP server for terminal commands, file operations, and process management
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
An MCP server for logging amateur-radio QSOs to N3FJP logging software — Amateur Contact Log and the 100-plus N3FJP contest loggers — from MCP-aware clients such as Claude Desktop.
Every program in the N3FJP suite shares one TCP control API. n3fjp-mcp speaks that protocol directly (Python's standard-library socket, no third-party wrapper) and exposes it as a small set of logically-grouped MCP tools, so an assistant can log contacts, read the log, run dupe checks, and manage band/mode through plain language.
It is the logging half of an "operate → log" workflow; its sibling project fldigi-mcp operates the radio.
Status: experimental (v0.3). Verified live against N3FJP's ARRL Field Day
Contest Log, API version 2.2. The protocol is shared across the suite, but
field sets vary per contest — confirm with the
fieldstool.
## ⚠️ Independent project — not affiliated with N3FJP
n3fjp-mcpis an independent, community project by Stefan Brunner (AE5VG),
using the "N3FJP" name with the permission of its owner. It is **not affiliated
with, endorsed by, or supported by N3FJP Software / Affirmatech**. Please direct
**all support questions for this app to
its issue tracker — not to
N3FJP**. MIT licensed. "N3FJP" is the callsign and trademark of its owner.
log tool runs the real N3FJP flow: set the call → CALLTAB (dupe check + previous-contact lookup) → set the exchange → ENTER, surfacing the dupe response and the number of records added.diagnostics tool, and an n3fjp_call escape hatch for the long tail and future commands.N3FJP_ALLOW_DB_WIPE switch.ENTER, CALLTAB, the TXTENTRY… boxes, Class/Section, etc.).To install the desktop extension (.mcpb):
1100).Claude Desktop's uv runtime supplies Python and the dependencies, so end users do not install Python or uv themselves.
For development from source you additionally need Python 3.10+ and [uv](https://docs.astral.sh/uv/) (and Node.js, only for the MCP Inspector).
Download n3fjp-mcp.mcpb from the latest release, then in Claude Desktop go to Settings → Extensions → Advanced settings → Install Extension… and choose the file. A short settings form asks for the host/port (defaults to 127.0.0.1:1100). No terminal, no Python, no uv to install.
👉 New to this? Follow the step-by-step install guide.
git clone https://github.com/sbrunner-atx/n3fjp-mcp.git
cd n3fjp-mcp uv sync
Then add it to Claude Desktop's config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": { "contest": { "command": "uv", "args": ["--directory", "/absolute/path/to/n3fjp-mcp", "run", "n3fjp-mcp"], "env": { "N3FJP_HOST": "127.0.0.1", "N3FJP_PORT": "1100" } } } }
Restart Claude Desktop and ask *"What's the N3FJP status?"*.
uv run mcp dev src/n3fjp_mcp/server.py
Each tool is one permission and takes an operation argument.
| Tool | Default | Controls |
|---|---|---|
status | read | snapshot: program, version, API version, QSO count, band/mode/frequency |
diagnostics | read | resolved host and port, this process's Python and hostname, network interfaces; does not connect to N3FJP |
query | read | program, qso_count, next_serial, log/settings/shared paths, qso_rate, band_mode_freq |
fields | read | read one entry box, or list visible / all fields with values |
search | read | list recent, search, dupecheck (no side effects), entity status |
log | approval | log_qso (set call → CALLTAB → exchange → ENTER), set, set_many, calltab, enter, clear, focus |
bandmode | approval | change_freq, set_band, set_mode, ignore_rig_polls |
notifications | approval | enable / disable push events, drain buffered events |
database | approval | add_direct, delete a record, raw sql, checklog, openlog, sqlclose |
n3fjp_call | approval | escape hatch — send any raw command, incl. future ones |
All write tools sit at the Needs Approval tier, so you can set them to *Always Allow* in the client for hands-off automation. The single exception is a whole-database wipe (see below), which is hard-blocked regardless.
The headline is log → log_qso:
log_qso call="W1AW" contest="field_day" exchange={"class":"2A","section":"CT"}
This sets the call, fires CALLTAB (dupe check), fills the exchange, sends ENTER, and reports records added plus any dupe detail.
| Variable | Default | Purpose |
|---|---|---|
N3FJP_HOST | 127.0.0.1 | N3FJP API host |
N3FJP_PORT | 1100 | N3FJP API port (the suite's default) |
N3FJP_TIMEOUT | 6 | Socket/response timeout, seconds |
N3FJP_ALLOW_DB_WIPE | off | Danger. Allow whole-database delete/overwrite (raw SQL DROP/TRUNCATE/unscoped DELETE/UPDATE). Leave off unless you really mean it |
In the packaged desktop extension these appear as a settings form.
Logging doesn't key a transmitter, so there is no transmit gate. The protection here is about your log database:
status, query, fields, search) are marked read-only — clients can default them to *Always Allow*.log), band/mode (bandmode), notifications, and adding, editing, or deleting individual records (database), plus the n3fjp_call escape hatch — all sit at the *Needs Approval* tier. There is no extra in-band confirmation, so you can set them to *Always Allow* in the client and let automation run hands-off.DROP, TRUNCATE, a DELETE/UPDATE with no WHERE) — are the one exception: refused unless N3FJP_ALLOW_DB_WIPE is on. This switch is separate from, and stricter than, the client's approval prompts, and carries a stern warning in the settings form. Back up your log before ever enabling it.Wherever possible, n3fjp-mcp leans on N3FJP's own validation (it dupe-checks and reports oddities) and surfaces those responses rather than re-implementing them.
N3FJP runs only on Windows. If N3FJP runs on the same Windows computer as Claude Desktop, leave N3FJP_HOST at 127.0.0.1 and you are done. On a Mac, N3FJP is always elsewhere: in a Windows virtual machine (Parallels, VMware Fusion, UTM) or on a Windows PC on the LAN. A VM has its own network address, so it counts as a different computer and needs the bridge below.
If N3FJP runs on a different computer, there's a catch: a sandboxed MCP client (notably Claude Desktop) runs the connector so it can only reach 127.0.0.1, not LAN addresses — so putting N3FJP's LAN IP in the settings will time out even though telnet to that IP works. Fix it with the standalone mcp-host-bridge tool on the client computer, then set the host to 127.0.0.1:
pipx install mcp-host-bridge # or download a binary from its releases
mcp-host-bridge install n3fjp --to 192.168.1.50 # knows n3fjp = port 1100; auto-starts
Manage it with mcp-host-bridge status n3fjp / uninstall n3fjp. Full details are in docs/REMOTE-HOST.md and the mcp-host-bridge README. The diagnostics tool helps confirm whether you need it. Keep the link on a trusted LAN — the API is unauthenticated.
Building this server meant reverse-engineering and live-verifying the N3FJP TCP API, including several places where today's API (v2.2) differs from the public 0.9 documentation. We've written that up as a complete, human-readable guide and are sharing it freely to give back to the community:
CMD_NOT_FOUND, commands removed since 0.9, the CALLTABEVENT lookup, and why ENTER can report 0 yet still log in networked mode).Corrections and additions are welcome — please open an issue or PR.
The skills/ directory contains agent skills — operating procedures distilled from live on-air use — bundled with the repo and the .mcpb package:
The [Operating Skills Field Guide](docs/operating-skills-field-guide.pdf) (PDF) documents this skill and its companions fldigi-operating and signal-hunting from the sibling fldigi-mcp — skills at a glance, installation, a plain-language "first session" chapter for hams new to Claude, the operating standard, the special-case playbook, and worked examples transcribed from ARRL Field Day 2026.
To use with Claude Code / Cowork, copy the skill directory into your ~/.claude/skills/ (or a project's .claude/skills/). Pair it with the fldigi-operating skill from fldigi-mcp for radio control.
uv sync
uv run ruff check . # lint uv run pytest # tests (no running N3FJP required) python3 smoke_test.py 192.168.1.50 1100 # Phase 0: prove the link to N3FJP
The test suite covers the wire protocol, the operation maps and field catalog, type coercion, and the permission and dat
ตัดมาแค่ช่วงต้น อ่านต่อใน repo