by LinkedIn
Draft, publish and manage LinkedIn posts — personal and company pages — from your AI agent. 7 tools, LinkedIn OAuth sign-in, works with any MCP client.
Agentman Certified
Built and operated by Agentman.
Connection checked by Agentman on .
Not listed in Anthropic’s Connectors Directory, which covers third-party connectors.
Connect LinkedIn via MCP
https://mcp.agentman.ai/linkedin/mcpWorks in any MCP-compatible client. In Agentman Studio it is one click — no config file to edit.
Use in Agentman
Connect LinkedIn once and your agents call these tools on their own — on a schedule, in a workflow, with nobody at the keyboard.
Open in Agentman StudioLinkedIn Tools & Capabilities (7)
Get the current user's LinkedIn profile via the OpenID Connect userinfo endpoint. Args: - response_format: Output format, 'markdown' (default) or 'json' Returns: - sub: LinkedIn member ID (used as the person URN suffix) - name: Full display name - given_name: First name - family_name: Last name - email: Email address (requires 'email' scope) - picture: Profile photo URL - locale: User locale Examples: - Get my profile: {} - Get as JSON: {"response_format": "json"} Error Handling: - Returns UNAUTHENTICATED if no token is present - Returns authentication error (401) if token is expired — triggers re-auth - Returns permission error if 'openid profile' scopes are missing
List UGC posts authored by the current LinkedIn user. Automatically resolves the current user's member URN, then queries the UGC Posts API. Args: - limit: Max posts to return (1-100, default 20) - offset: Posts to skip for pagination (default 0) - response_format: Output format, 'markdown' (default) or 'json' Returns: - posts: Array of UGC post objects (id, author, lifecycleState, specificContent, created) - pagination: total, count, offset, limit, hasMore Examples: - List my recent posts: {} - Second page: {"offset": 20} - Compact JSON view: {"limit": 5, "response_format": "json"} Error Handling: - Returns UNAUTHENTICATED if no token is present - Returns authentication error if token is expired - Returns permission error if 'w_member_social' scope is missing
Get a specific LinkedIn UGC post by its URN. Fetches the full post object including content, author, and lifecycle state. Args: - post_urn: LinkedIn URN of the post (required, e.g. "urn:li:ugcPost:7123456789012345678") - response_format: Output format, 'markdown' (default) or 'json' Returns: - post: Full UGC post object with id, author, lifecycleState, specificContent, visibility, created, lastModified Examples: - Get a post: {"post_urn": "urn:li:ugcPost:7123456789012345678"} - As JSON: {"post_urn": "urn:li:ugcPost:7123456789012345678", "response_format": "json"} Error Handling: - Returns UNAUTHENTICATED if no token is present - Returns not_found (404) if the URN doesn't exist or is inaccessible - Returns authentication error if token is expired
Create a new LinkedIn text post as the authenticated user. Automatically resolves the author URN from the current user's profile and publishes a plain-text UGC post to their feed. Args: - text: Post text content (required, max 3000 characters) - visibility: Post audience — 'PUBLIC' (default) or 'CONNECTIONS' - response_format: Output format, 'markdown' (default) or 'json' Returns: - post: Created post object with id (the new post's URN), author, lifecycleState Examples: - Public post: {"text": "Excited to share our latest update!"} - Connections only: {"text": "Team announcement", "visibility": "CONNECTIONS"} Error Handling: - Returns UNAUTHENTICATED if no token is present - Returns authentication error if token is expired - Returns permission error (403) if 'w_member_social' scope is missing - Returns validation error (422) if text violates LinkedIn content policies
Delete a LinkedIn UGC post by its URN. Permanently removes the post. Only posts authored by the authenticated user can be deleted. This action is irreversible. Args: - post_urn: LinkedIn URN of the post to delete (required, e.g. "urn:li:ugcPost:7123456789012345678") - response_format: Output format, 'markdown' (default) or 'json' Returns: - success: true - deleted_urn: The URN of the deleted post Examples: - Delete a post: {"post_urn": "urn:li:ugcPost:7123456789012345678"} Error Handling: - Returns UNAUTHENTICATED if no token is present - Returns not_found (404) if the post URN doesn't exist - Returns permission error (403) if the post is not owned by the current user - Returns authentication error if token is expired
List LinkedIn company pages that the authenticated user administers. Queries the Organization ACLs API for organizations where the user holds the ADMINISTRATOR role. The returned organization URNs can be used with linkedin_create_company_post. Args: - limit: Max companies to return (1-100, default 20) - offset: Companies to skip for pagination (default 0) - response_format: Output format, 'markdown' (default) or 'json' Returns: - companies: Array of organization ACL entries with: - organization: Organization URN (e.g. "urn:li:organization:12345678") - role: Role type (ADMINISTRATOR) - state: ACL state (APPROVED) - pagination: total, count, offset, limit, hasMore Examples: - List all my companies: {} - As JSON: {"response_format": "json"} Error Handling: - Returns UNAUTHENTICATED if no token is present - Returns empty list if user has no admin access to any company page - Returns permission error (403) if 'rw_organization_admin' scope is not granted (Note: this scope requires LinkedIn partner approval) - Returns authentication error if token is expired
Create a LinkedIn post on behalf of a company/organization page. Publishes a plain-text UGC post authored by the specified organization. The authenticated user must be an ADMINISTRATOR of the organization. Use linkedin_get_my_companies to find the organization ID. Args: - organization_id: Numeric LinkedIn organization ID (required, e.g. "12345678"). Find it via linkedin_get_my_companies — extract the numeric suffix from the organization URN (e.g. "urn:li:organization:12345678" → "12345678") - text: Post text content (required, max 3000 characters) - visibility: Post audience — 'PUBLIC' (default) or 'CONNECTIONS' - response_format: Output format, 'markdown' (default) or 'json' Returns: - post: Created post object with id (the new post's URN), author, lifecycleState Examples: - Post as company: {"organization_id": "12345678", "text": "We're hiring! Join our team."} - Connections only: {"organization_id": "12345678", "text": "Internal update", "visibility": "CONNECTIONS"} Error Handling: - Returns UNAUTHENTICATED if no token is present - Returns authentication error if token is expired - Returns permission error (403) if user is not an ADMINISTRATOR of the organization - Returns permission error (403) if 'rw_organization_admin' scope is not granted (Note: this scope requires LinkedIn partner approval) - Returns validation error (422) if text violates LinkedIn content policies
Read from the server on 2026-09-07, including each tool's own safety annotations.
Frequently asked questions
Yes. linkedin_create_company_post publishes to an organisation page, and linkedin_get_my_companies lists the pages your account administers so an agent can find the right identifier first. Posting to a company page requires that your LinkedIn account already holds an admin role on it; the connector cannot grant access it does not have.
No. All seven tools operate on your own content. linkedin_list_my_posts returns posts you authored, and linkedin_get_post fetches a post by its URN. There is no tool that reads a timeline, searches LinkedIn, views another member's profile, or retrieves connections, so the connector cannot be used to harvest data about other people.
Four scopes, published by the server at its RFC 9728 protected-resource descriptor and observed on 7 September 2026: openid, profile, email and w_member_social. The first three identify you through OpenID Connect. w_member_social is the write scope that allows publishing and deleting posts on your behalf. No scope grants access to messaging or connections.
Yes, if your prompt asks it to. linkedin_create_post and linkedin_create_company_post publish immediately when called, and the server declares both as acting tools rather than read-only. LinkedIn has no draft state exposed here, so review the text in the conversation before you ask an agent to post it.
Yes. linkedin_delete_post removes a post by its URN, and the deletion is permanent because LinkedIn provides no recycle bin for deleted posts. The tool is declared as acting rather than read-only. Only posts reachable from your own account can be deleted, so the connector cannot remove content published by anyone else.
Sources
- Live
tools/listhandshake againsthttps://mcp.agentman.ai/linkedin/mcp— 7 tools, 7 September 2026 - Live
prompts/listandresources/listprobes —-32601method not found, 7 September 2026 - The server's own RFC 9728 descriptor at
/.well-known/oauth-protected-resource— four scopes, 7 September 2026
Server Info
- Category
- Marketing
- Developer
- Tools
- 7
- Domain
- mcp.agentman.ai
Using Claude Desktop or another MCP client? Setup docs — the connection URL above works anywhere.
Similar MCP Servers for Marketing
Related Resources
Ready to connect LinkedIn?
Connect LinkedIn once and your agents call these tools on their own — on a schedule, in a workflow, with nobody at the keyboard.