linkedin-mcp-server: Instructions file for Codex

AGENTS.md

linkedin-mcp-server AGENTS.md is an instructions file for Codex, OpenCode from abetoluwani/linkedin-mcp-server. It costs 3,883 tokens per session, scanned A, original, Apache-2.0.

A set of project instructions for an AI coding assistant working on a LinkedIn data server. It documents commands, scraping rules, browser identity rules, and profile safety rules.

In plain words
What is it for?
It helps run checks, format and type-check Python code, run tests, start the server, build its Docker image, and keep scraping navigation and browser behavior consistent.
Why use it?
It gives the assistant the repository’s working rules, so development and LinkedIn scraping follow the project’s requirements.

Instructions file for CodexOpenCode

Written for Codex and OpenCode: the file is AGENTS.md. Also seen: mentions CLAUDE.md; positional $N argument; mentions Claude Code.

This is abetoluwani/linkedin-mcp-server's own configuration. It tells Codex and OpenCode how to work on linkedin-mcp-server itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything linkedin-mcp-server configures →

Reuse

Borrowing it

Nothing to install: this file belongs to abetoluwani/linkedin-mcp-server. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/abetoluwani/linkedin-mcp-server/main/AGENTS.md
Clone the repo
git clone --depth 1 https://github.com/abetoluwani/linkedin-mcp-server

Made for: Codex, OpenCode.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for linkedin-mcp-server AGENTS.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/abetoluwani/linkedin-mcp-server/agents-md/github.svg)](https://agentmods.dev/instructions/abetoluwani/linkedin-mcp-server/agents-md)
Your own site
<a href="https://agentmods.dev/instructions/abetoluwani/linkedin-mcp-server/agents-md"><img src="https://agentmods.dev/badge/instructions/abetoluwani/linkedin-mcp-server/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for linkedin-mcp-server AGENTS.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/abetoluwani/linkedin-mcp-server/agents-md"><img src="https://agentmods.dev/badge/instructions/abetoluwani/linkedin-mcp-server/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 3,883 This file is loaded in full into every session.
When invoked 3,883 The same file — it is already loaded in full.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.03883 $0.03883
Opus 5 $0.01942 $0.01942
Sonnet 5 $0.00777 $0.00777
Haiku 4.5 $0.00388 $0.00388

Measured 8d ago against content hash 9099bd2313be, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

linkedin-mcp-server AGENTS.md scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -s -D /tmp/mcp-headers -X POST http://127.0.0.1:8000/mcp \
AGENTS.md · 249 lines

How it starts

The opening of the file, as written. The whole thing — 249 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Development Commands

  • Use uv for dependency management: uv sync (dev: uv sync --group dev)
  • Lint: uv run ruff check . (auto-fix with --fix)
  • Format: uv run ruff format .
  • Type check: uv run ty check (using ty, not mypy)
  • Tests: uv run pytest (with coverage: uv run pytest --cov)
  • Pre-commit: uv run pre-commit install then uv run pre-commit run --all-files
  • Run server locally: uv run -m linkedin_mcp_server --no-headless
  • Run via uvx (PyPI/package verification only): uvx mcp-server-linkedin
  • Docker build: docker build -t linkedin-mcp-server .
  • Install browser: uv run patchright install chromium

Scraping Rules

  • One section = one navigation. Each entry in PERSON_SECTIONS / COMPANY_SECTIONS (scraping/fields.py) maps to exactly one page navigation. Never combine multiple URLs behind a single section.
  • Minimize DOM dependence. Prefer innerText and URL navigation over DOM selectors. When DOM access is unavoidable, use minimal generic selectors (a[href*="/jobs/view/"]) — never class names tied to LinkedIn's layout.
  • Detection must be locale-independent. Classification logic — connection state, action availability, button identity — must rely on URL patterns (/preload/custom-invite/?vanityName=USER, /in/USER/edit/intro/, /messaging/compose/), attribute presence (aria-label exists, aria-expanded exists, aria-disabled exists), or structural counts — never on text values like "Connect", "Follow", "Message", "1st", "Pending". The verb in an aria-label is locale-dependent; whether the attribute exists is not. Where text is genuinely the only signal, guard it behind an explicit per-locale table and document the limitation in code.

Browser Identity Rules

  • The browser must not contradict itself. Anything it says about itself has to survive being checked against another surface of the same browser: the user-agent against sec-ch-ua, the page against its workers and iframes, the reported screen against the window sitting on it. The goal is coherence, not invisibility — invisibility cannot be proven, while a contradiction is a fact and can be found by anyone who looks twice.
  • Never inject a fingerprint. No user_agent, no custom headers, no spoofed client hints. Patchright's own guidance says the same, and every override measured here made things worse: a user_agent= argument changes the string but not the client hints, and never reaches service workers at all (playwright#5237, closed as an upstream Chromium bug). A browser telling the truth beats one caught lying.
  • A proxy must contain every egress path, not just HTTP. WebRTC uses UDP and went around a configured proxy until the switches in browser_launch.py. DNS and QUIC belong to the same family; check them before assuming a new setting is contained.
  • Verify identity changes by measurement. docs/browser-fingerprint.md lists the four detectors, what each one alone would miss, and the values measured so far. A launch-configuration change without a measurement against them is a guess.

Read the full file on GitHub · 249 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 8d ago First seen · 249 lines · 3,883 tokens per session scan A 9099bd2313be

Subscribe to this mod's changes

linkedin-mcp-server AGENTS.md is an instructions file published in the GitHub repository abetoluwani/linkedin-mcp-server (0 stars, last pushed 18d ago), licensed Apache-2.0. It adds 3,883 tokens to every session, about $0.0194 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other instructions, from other repositories

next.js AGENTS.md

AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.

vercel/next.js · 7,296 tokens

codex AGENTS.md

AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.

openai/codex · 5,153 tokens

vscode buildNext.instructions.md

Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).

microsoft/vscode · 6,785 tokens

vscode oss-third-party-notices.instructions.md

Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).

microsoft/vscode · 5,001 tokens

langchain AGENTS.md

AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.

langchain-ai/langchain · 4,469 tokens

spec-kit AGENTS.md

AGENTS.md instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.

github/spec-kit · 7,104 tokens