# Reported issues for linkedctl

Pod holds 17 of 19 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [linkedctl](/mcp/linkedctl).

## Most discussed

### Add Claude marketplace plugin and MCP skill documentation

**What**: Add Claude ecosystem integration files so LinkedCtl is discoverable and installable via Claude marketplaces (Smithery, Glama, MCP Registry) and includes a workflow skill for Claude Code users.

**Changes made** (committed on `main`, not yet pushed):
- `.claude-plugin/plugin.json` — plugin metadata for Claude marketplace listing
- `.claude-plugin/marketplace.json` — Smithery/Glama marketplace registration config
- `.mcp.json` — local MCP server config for Claude Desktop/Cursor
- `skills

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/163) · 2026-03-10 · closed · 2 comments

### (feat) HTTP client foundation

## Description

LinkedIn API HTTP client with proper headers, error handling, and rate limiting.

## Acceptance Criteria

- [ ] Sends correct headers: `Authorization`, `Linkedin-Version`, `X-Restli-Protocol-Version`, `User-Agent`
- [ ] On 429: exponential backoff retry (up to 3 retries)
- [ ] On 401: clear message directing user to re-authenticate
- [ ] On 5xx: clear server-side error message

**Blocks**: #2, #3, #4, #5, #6, #7, #8, #9

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/1) · 2026-03-03 · closed · 1 comment

### Split monolithic MCP server.ts into per-domain tool modules

## Problem

`packages/mcp/src/server.ts` is 1,198 lines with all 22 tool registrations inline in a single `createMcpServer()` function. The `post_create` handler alone is 240 lines.

## Solution

Split into domain modules following QontoCtl's pattern:
- `tools/posts.ts` — `registerPostTools(server, getClient)`
- `tools/comments.ts` — `registerCommentTools(server, getClient)`
- `tools/reactions.ts` — `registerReactionTools(server, getClient)`
- `tools/orgs.ts` — `registerOrgTools(server, getClien

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/168) · 2026-03-10 · closed · 0 comments

### Fix transitive CVEs via @modelcontextprotocol/sdk

## Problem

5 known CVEs in transitive dependencies via `@modelcontextprotocol/sdk@1.27.1`:

| Package | Severity | Advisory |
|---------|----------|----------|
| hono 4.12.3 | High | GHSA-q5qw-h33p-qvwr (arbitrary file access) |
| @hono/node-server 1.19.9 | High | GHSA-wc8c-qw6v-h7f6 (auth bypass) |
| express-rate-limit 8.2.1 | High | GHSA-46wh-pxpv-q5gq (rate limit bypass) |
| hono 4.12.3 | Moderate | GHSA-5pq2-9x2x-5p6w (cookie injection) |
| hono 4.12.3 | Moderate | GHSA-p6xx-57qc-3wxr (SSE 

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/166) · 2026-03-10 · closed · 0 comments

### Update README to reflect v0.5.0 capabilities

## Problem

README documents only v0.1.0 capabilities:
- MCP tools section lists 3 tools (`post_create`, `auth_status`, `auth_revoke`) — actual: 22 tools
- CLI Reference section covers only auth, text post, profile, whoami — missing: media upload, comments, reactions, orgs, analytics, polls, drafts

## Scope

Update README to cover:
- [ ] All 22 MCP tools in the Available Tools table
- [ ] Full CLI command tree (media, comment, reaction, org, stats)
- [ ] Rich post types (image, video, document,

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/165) · 2026-03-10 · closed · 0 comments

### MCP: add unified error handling to all 22 tools

## Problem

14 of 22 MCP tools have no `LinkedInAuthError` handling. When auth expires, these tools throw unhandled exceptions instead of returning actionable guidance.

**Tools with handling** (6): `whoami`, `reaction_create`, `reaction_list`, `reaction_delete`, `auth_status`, `auth_revoke`

**Tools WITHOUT handling** (14): `post_create`, `post_get`, `post_list`, `post_update`, `post_delete`, `comment_create`, `comment_list`, `comment_get`, `comment_delete`, `document_upload`, `org_list`, `org_

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/164) · 2026-03-10 · closed · 0 comments

### Org stats MCP tools

## org-stats-mcp

**Type**: story
**Component**: Stats MCP Tools (org)
**Priority**: Should
**Scope**: [member-post-analytics](https://github.com/alexey-pelykh/linkedctl/blob/main/docs/scope/member-post-analytics.md) (HQ-scoped)

MCP tool `stats_org` for organization share statistics. Includes per-tool `profile` parameter.

### Acceptance Criteria

- Given an MCP client calling `stats_org` with an org ID, Then JSON org stats are returned
- Given `stats_org` with date range and granularity, Then 

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/153) · 2026-03-09 · closed · 0 comments

### Member stats MCP tools

## member-stats-mcp

**Type**: story
**Component**: Stats MCP Tools (member)
**Priority**: Must
**Scope**: [member-post-analytics](https://github.com/alexey-pelykh/linkedctl/blob/main/docs/scope/member-post-analytics.md) (HQ-scoped)

MCP tool definitions `stats_post` and `stats_me` for member post analytics. Includes per-tool `profile` parameter for multi-app auth (ADR-001).

### Acceptance Criteria

- Given an MCP client calling `stats_post` with a post URN, Then JSON stats are returned with al

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/151) · 2026-03-09 · closed · 0 comments

## Most recent

### Org stats API client

## org-stats-api

**Type**: story
**Component**: Org Stats API Client
**Priority**: Should
**Scope**: [member-post-analytics](https://github.com/alexey-pelykh/linkedctl/blob/main/docs/scope/member-post-analytics.md) (HQ-scoped)

API integration for LinkedIn `organizationalEntityShareStatistics` endpoint. Single-call endpoint with time-bound filtering (DAY/MONTH granularity) and per-post filtering.

### Acceptance Criteria

- Given an org ID and `rw_organization_admin` scope, When fetching lifeti

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/147) · 2026-03-09 · closed · 0 comments

### (docs) add claude mcp add installation instructions

## Context

The MCP README documents Claude Desktop configuration but not the `claude mcp add` CLI command for Claude Code users.

## Requirements

Add installation instructions for Claude Code:

```sh
claude mcp add linkedctl -- npx linkedctl mcp
```

Also document Cursor and Windsurf configuration where applicable.

## References

- QontoCtl MCP README covers all four clients (Claude Desktop, Claude Code, Cursor, Windsurf)

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/108) · 2026-03-06 · closed · 0 comments

### (feat) add glama.json for Glama AI marketplace listing

## Context

QontoCtl is listed on the [Glama AI marketplace](https://glama.ai/mcp/servers) via a `glama.json` file. LinkedCtl's MCP server is not discoverable there.

## Requirements

Add `glama.json` following the Glama schema (`https://glama.ai/mcp/schemas/server.json`):

- Register maintainer(s)
- Include server metadata

## References

- QontoCtl's `glama.json` as reference implementation
- [Glama MCP servers directory](https://glama.ai/mcp/servers)

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/107) · 2026-03-06 · closed · 0 comments

### (feat) add server.json for MCP Registry listing

## Context

QontoCtl is registered in the [MCP Registry](https://github.com/modelcontextprotocol/servers) via a `server.json` file at the repo root. LinkedCtl's MCP server exists but is not discoverable through the registry.

## Requirements

Add `server.json` following the MCP Registry schema (`https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json`):

- **Name**: `io.github.alexey-pelykh/linkedctl`
- **Transport**: stdio
- **Registry type**: npm
- **Package ID**: `linkedc

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/106) · 2026-03-06 · closed · 0 comments

### (ux) MCP error messages should not reference CLI commands

## Problem

MCP tool error messages reference CLI commands (e.g., 'Run "linkedctl profile create"'), but MCP users may not have CLI access or know CLI commands.

## Expected Behavior

Error messages should be channel-appropriate:
- CLI errors → suggest CLI commands
- MCP errors → suggest config file actions or MCP tools

## Acceptance Criteria

- Given an MCP tool error, When the error message is shown, Then it does not reference `linkedctl` CLI commands
- Given an auth error in MCP, When shown,

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/99) · 2026-03-05 · closed · 0 comments

### (ux) add whoami MCP tool

## Problem

The MCP server has no `whoami` equivalent. MCP clients (Claude, Cursor) cannot verify which LinkedIn user they're acting as before creating posts.

## Expected Behavior

A `whoami` MCP tool that returns the current user's name, email, and profile picture URL.

## Acceptance Criteria

- Given a valid access token, When the `whoami` tool is called, Then the user's name, email, and picture are returned
- Given an expired token, When the tool is called, Then a clear error with re-authent

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/98) · 2026-03-05 · closed · 0 comments

### (docs) add per-package READMEs for core, cli, mcp

## Context

Documentation audit findings DOCS-004, DOCS-005 (🟡 Medium).

`@linkedctl/core`, `@linkedctl/cli`, and `@linkedctl/mcp` are published to npm with `"access": "public"` but have no README. npm shows blank package pages.

For `@linkedctl/core`, the root README acknowledges library usage ("Your combined work must be licensed under AGPL-3.0"), but there is no API surface documentation.

## Acceptance Criteria

- [ ] `packages/core/README.md` exists with purpose, installation, API surface s

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/52) · 2026-03-04 · closed · 0 comments

### (docs) document MCP tools in README

## Context

Documentation audit finding DOCS-006 (🟡 Medium).

The MCP server registers 3 tools (`post_create`, `auth_status`, `auth_revoke`) but none are documented. Users integrating with Claude or other MCP clients have no tool reference.

## Acceptance Criteria

- [ ] README MCP Integration section lists available tools
- [ ] Each tool has parameters and description matching `packages/mcp/src/server.ts`
- [ ] Tool names, input schemas, and descriptions are accurate

## Scope Document

`docs/s

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/50) · 2026-03-04 · closed · 0 comments

### (docs) fix CLAUDE.md package exports description

## Context

Documentation audit finding DOCS-010 (🔴 Critical).

CLAUDE.md Package Exports section (lines 101-112) states all packages use:
```json
"exports": { ".": { "types": "./dist/index.d.ts", "import": "./dist/index.js" } }
```

This is inaccurate for two packages:
- `packages/linkedctl` exports `./dist/cli.d.ts` + `./dist/cli.js`
- `packages/mcp` has 3 export entries (`.`, `./server`, `./stdio`) using `server.d.ts`/`server.js`

## Acceptance Criteria

- [ ] CLAUDE.md Package Exports sectio

[Read the thread](https://github.com/alexey-pelykh/linkedctl/issues/46) · 2026-03-04 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/alexey-pelykh/linkedctl/issues).
