ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Omentir

โดย vanshyadav1408รุ่น 1.1.0i★ –iรันบนคลาวด์
ชื่อใน registryio.github.vanshyadav1408/omentir

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Find LinkedIn prospects, draft outreach, and run human-paced campaigns from your AI agent.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนคลาวด์
  • ช่องทาง (transport): Streamable HTTP
  • หมวด: การตลาดและโซเชียล

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ต้องเตรียมก่อน

  • รันบนคลาวด์ไม่ต้องลงโปรแกรมเพิ่ม ต่อผ่านอินเทอร์เน็ตได้เลย

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:

  1. เปิด Settings → Connectors
  2. กด Add custom connector
  3. วางที่อยู่ด้านล่างแล้วกด Add
  4. ถ้าให้ล็อกอิน ให้ล็อกอินกับผู้ทำ
SettingsConnectors1+ Add2https://…3
https://omentir.com/api/agent/v1/mcp

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add --transport http omentir https://omentir.com/api/agent/v1/mcp

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "omentir": {
      "url": "https://omentir.com/api/agent/v1/mcp"
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "omentir": {
      "type": "http",
      "url": "https://omentir.com/api/agent/v1/mcp"
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:

  1. เปิด ChatGPT บนเว็บ → Settings → Connectors (Apps)
  2. กด Create หรือ Add (บางแพ็กเกจต้องเปิด Developer mode ใน Advanced ก่อน)
  3. วางที่อยู่ด้านล่าง ตั้งชื่อ แล้วบันทึก
  4. ถ้าให้ล็อกอิน ให้ล็อกอินกับผู้ทำ
SettingsConnectors1+ Create2https://…3
https://omentir.com/api/agent/v1/mcp

ชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

server ให้ล็อกอินก่อนจึงจะแสดงรายการเครื่องมือ

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 9 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub vanshyadav1408 ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • ✓ ผ่าน

    endpoint ตอบ

    ตอบกลับใน 431 ms (HTTP 401)

  • ✓ ผ่าน

    ล็อกอินแบบ OAuth

    ประกาศวิธีล็อกอินแบบ OAuth ให้โปรแกรม AI พาไปล็อกอินเอง

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint

เทียบกับตัวอื่นในหมวด การตลาดและโซเชียลi

  • ดาวมากกว่า 0% ของอีก 3657 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 40% ของอีก 3657 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 3657 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Omentir ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.1.0) เข้า registry 42 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

MCP YouTube Transcript

An MCP server retrieving transcripts of YouTube videos

โดย jkawamotoกำลังโต★ 495อัปเดต 12 วันที่ผ่านมา

รันบนเครื่อง

Google Analytics MCP

GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.

โดย surendranbกำลังโต↓ 1.1K/สัปดาห์★ 244อัปเดต 12 วันที่ผ่านมา

รันบนเครื่อง

BibiGPT YouTube Video Summarizer

AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.

โดย JimmyLvกำลังโต★ 137อัปเดต 12 วันที่ผ่านมา

รันบนคลาวด์✓ bibigpt.co

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

Omentir

Omentir is an open-source alternative to LinkedIn outreach and automation tools like HeyReach and Gojiberry.

It's an AI sales workspace for finding qualified LinkedIn prospects, drafting contextual outreach, running human-paced campaigns, and handling replies — but you own the code and run it on your own infrastructure.

Use the managed product at omentir.com, or self-host the same application code with your own Firebase, Gemini, and Unipile accounts.

One codebase: hosted cloud and self-host share this repo. RUN_LOCALLY=TRUE switches auth, billing, marketing, and hosted-only mail off. Public brand contacts for omentir.com stay in source on purpose (see src/lib/hosted-identity.ts); they are not used for self-hosted operation.

Connect from other AI apps (Claude, ChatGPT, Grok, Grok Bot, Cursor, …)

People use Omentir from chat and coding agents without sharing LinkedIn passwords:

  1. In Omentir: connect LinkedIn and fill Workspace.
  2. Chat apps (Claude, ChatGPT, Grok): Settings → Connectors → add https://omentir.com/api/agent/v1/mcp → sign in and approve Connect workspace → enable tools in the chat. No API key.
  3. Grok Bot (the always-on teammate app, not grok.com chat): Settings → Plugins → search Marketplace for Omentir. If it is not listed, add the same MCP URL as a custom server → approve Connect workspace. Do not sign LinkedIn into the Bot computer. Grok Bot integration.
  4. Cursor / Claude Code / scripts: create a key on the API page and send Authorization: Bearer to the MCP endpoint or REST /api/agent/v1/*.
  5. Ask the assistant to create a classic lead finder or a Steal Customers agent (mode: steal_customers + competitor company URLs). If you have more than one company, ask it to list workspaces and switch.

Docs: MCP integration, Agent API, agents.md (machine guide), OpenAPI.


Self-hosting

Omentir is self-hostable with external managed services. It is not offline or dependency-free. You provide Firebase/Firestore, Unipile, and either a Gemini API key or a Google Cloud Vertex AI project.

Self-hosting removes the Omentir subscription, but Firebase/Google AI and Unipile can still cost money.

Quick start on localhost

Install Git and either Docker with Docker Compose, or Bun 1.3. Then clone and configure the project:

git clone https://github.com/vanshyadav1408/Omentir.git

cd Omentir cp .env.example .env

Open .env and fill in every uncommented blank value. Complete the provider setup below before starting the server.

Generate independent secrets with:

openssl rand -base64 48

Use that (or a password manager) for at least:

  • LOCAL_SESSION_SECRET (required)
  • LOCAL_APP_PASSWORD (required unless you explicitly allow open access — see Access control)
  • CRON_SECRET (required unless automation is fully disabled)
  • UNIPILE_WEBHOOK_SECRET (required for reply and relation webhooks)

For an initial setup with all automation disabled, leave CRON_SECRET blank and set AUTOMATION_DISABLED=true instead. Keep ENABLE_LIVE_AUTOMATION=false until dry-run output has been reviewed.

Run with Docker

Docker is the supported self-hosting path. Omentir runs on amd64 and arm64.

docker compose up --build -d

docker compose logs -f omentir

Open http://localhost:3000. Press Ctrl+C to exit the log view without stopping Omentir. Stop the server later with docker compose down.

Port binding: Compose publishes the app as 127.0.0.1:3000:3000 only. That means the container is reachable from the same machine (http://localhost:3000), not from other devices on your LAN or the public internet. This is intentional: a misconfigured or passwordless instance must not become reachable just because Docker started.

To expose the app on a real host (LAN/VPS):

  1. Put HTTPS reverse proxy (Caddy, nginx, Traefik, etc.) on the public interface.
  2. Proxy to 127.0.0.1:3000 (or change the Compose bind only if you understand the risk).
  3. Set APP_BASE_URL to the exact public HTTPS origin (no trailing slash).
  4. Keep a strong LOCAL_APP_PASSWORD (do not enable open access on a public URL).
Run with Bun

For local development:

bun install

bun run dev

For a production-style local server:

bun install

bun run build bun start

Open http://localhost:3000. Sign in with LOCAL_APP_PASSWORD unless you opted into open access (see below).

Bun is the package manager and script runner, but bun run dev deliberately starts Next on Node rather than under bun --bun. In dev, Turbopack loads every package in serverExternalPackages (firebase-admin among them) through a hashed specifier such as firebase-admin- /firestore, which only resolves via a loader hook Next installs in Node. Bun's resolver does not run that hook, so bun --bun next dev fails on the first Firestore import with ResolveMessage: Cannot find module. Production is unaffected: built output emits plain requires, so build and start still run under Bun.

Access control (local login)

Self-host mode uses a single workspace and a signed, HTTP-only session cookie (omentir_local_session), not Clerk.

SettingBehavior
LOCAL_APP_PASSWORD set (12+ characters, high entropy)Login form requires that password. This is the default expectation.
LOCAL_APP_PASSWORD blank and LOCAL_ALLOW_OPEN_ACCESS unset/falseStartup fails. Blank password is no longer enough to run an unprotected instance.
LOCAL_ALLOW_OPEN_ACCESS=true and blank passwordExplicit opt-in: welcome screen with a “Continue to overview” button (no password). Use only on a trusted machine / private network.
LOCAL_ALLOW_OPEN_ACCESS=true and password setPassword is still required (open-access flag does not weaken a configured password).
LOCAL_SESSION_SECRETRequired always. Minimum 32 characters, high entropy. Used to HMAC-sign session tokens. Changing it invalidates all existing sessions.

Additional login hardening that matters for operators:

  • Origin check: POST /api/local-auth/login only accepts requests whose Origin matches APP_BASE_URL.
  • Brute-force throttle: wrong passwords are rate-limited per source IP (in-process).
  • Post-login redirects: the ?next= return path is sanitized so values like //evil.com cannot open-redirect the browser after sign-in. Only same-origin relative paths (starting with a single /) are allowed.
  • Cookie flags: session cookies are HttpOnly, SameSite=Lax, and Secure when APP_BASE_URL is HTTPS.
1. Provider setup
  1. Create a dedicated Firebase project. Enable Firestore and create a service account. Never reuse the hosted Omentir project.
  2. Deploy the required indexes with firebase deploy --only firestore:indexes, or create the indexes from Firestore error links. The source is firestore.indexes.json.
  • Also deploy firebase deploy --only firestore:rules. Omentir reaches Firestore only through the server-side Admin SDK, so the shipped firestore.rules denies all direct browser/client access. Keep it deployed — it stops anyone from reading or writing your data with a leaked project ID or web API key.
  1. Create a Unipile account and obtain its DSN, API key, and webhook secret. Unipile is paid and LinkedIn can restrict automated accounts.
  2. Create a Gemini API key. For Vertex instead, set GOOGLE_CLOUD_PROJECT, GOOGLE_CLOUD_LOCATION, and GOOGLE_APPLICATION_CREDENTIALS_JSON, enable Vertex AI, and grant the service account Vertex AI User.
2. Configure

Copy .env.example to .env. Required local settings are validated at server startup:

VariableScopeSecretRuntime behavior
RUN_LOCALLY=TRUElocalnoSelects built-in single-workspace authentication
APP_BASE_URLsharednoCanonical server URL; HTTPS required off localhost
LOCAL_APP_PASSWORDlocalyes*Required access password unless open access is explicitly allowed; minimum 12 characters when set
LOCAL_ALLOW_OPEN_ACCESSlocalnoMust be exactly true to allow a passwordless welcome screen
LOCAL_SESSION_SECRETlocalyesIndependent random value, minimum 32 characters
LOCAL_USER_NAME / LOCAL_USER_EMAILlocalnoDisplay identity for the single local workspace
FIREBASE_PROJECT_IDsharednoDedicated Firebase project
FIREBASE_SERVICE_ACCOUNT_KEYsharedyesService-account JSON; malformed JSON fails startup
UNIPILE_DSN / UNIPILE_API_KEYsharedmixedUnipile endpoint and credential
UNIPILE_WEBHOOK_SECRETsharedyesAuthenticates reply and relation webhooks
GEMINI_API_KEYlocal/simpleyesGemini Developer API path
Vertex variablesshared/advancedyesAlternative to GEMINI_API_KEY
CRON_SECRETsharedyesRequired unless automation is disabled; used by the built-in scheduler and job routes
ENABLE_LIVE_AUTOMATIONlocalnoLive sends remain off unless exactly true
AUTOMATION_DISABLEDsharednoEmergency stop; skips scheduler and job execution
RESEND_API_KEY / RESEND_FROM_EMAILoptionalyes/mixedTransactional notifications only in local mode
ALLOWED_DEV_ORIGINSdev onlynoExtra hostnames for Next.js HMR when using tunnels/proxies

\* Treat LOCAL_APP_PASSWORD as a secret even though it is typed by a human.

Generate secrets with a cryptographically secure password manager or openssl rand -base64 48. Placeholder strings such as replace-me are rejected at startup.

3. HTTPS and callbacks

http://localhost is supported for local browser use. Any LAN, VPS, tunnel, or internet deployment must use HTTPS. Put a reverse proxy such as Caddy or nginx in front of port 3000 (prefer proxying to the loopback bind above) and set APP_BASE_URL to the exact public origin. Do not expose port 3000 on 0.0.0.0 without TLS and a password.

Unipile connect and reply callbacks require a reachable HTTPS URL that matches APP_BASE_URL.

LinkedIn connect notify callback

When a user connects LinkedIn, Omentir registers a server-to-server notify URL with Unipile:

{APP_BASE_URL}/api/connect/callback

That endpoint requires a high-entropy, one-time connect token issued when the flow starts and consumed on success. It also verifies that the returned account exists in the configured Unipile account before saving it. Shared secrets are never placed in callback URLs.

Reply / relation webhooks use the separate Unipile webhook route and the same UNIPILE_WEBHOOK_SECRET (header x-omentir-webhook-secret).

4. Enable automation safely

Keep ENABLE_LIVE_AUTOMATION=false, connect LinkedIn, and inspect dry-run decisions in automationRuns. Only set it to true after the account, targeting, message drafts, and quotas are correct. AUTOMATION_DISABLED=true is the emergency stop and also permits omitting CRON_SECRET.

The process can run a built-in scheduler that calls GET /api/jobs/automation-tick with CRON_SECRET (header x-cron-secret or Authorization: Bearer …). Job secret comparison is constant-time. Do not put CRON_SECRET in browser-facing URLs or public logs.

Email

Local mode never sends Omentir marketing, founder, contact-form, or mailing-list email. Operational notifications can use your own Resend account. Without it, outreach still works and notification sends are skipped.

The same repository powers oment

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx