{"_id":"@biznezstack/linkedin-post-mcp","_rev":"3-64f484869bcc8e7a6ff7543b7917ff46","name":"@biznezstack/linkedin-post-mcp","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@biznezstack/linkedin-post-mcp","version":"1.0.0","keywords":["mcp","linkedin","social-media","claude","ai"],"author":{"name":"biznezstack"},"license":"MIT","_id":"@biznezstack/linkedin-post-mcp@1.0.0","maintainers":[{"name":"biznezstack","email":"hello@biznezstack.com"}],"bin":{"linkedin-post-mcp":"dist/index.js"},"dist":{"shasum":"7d5fb3e61bb595c73e5841ea46b272ba17f9a9bb","tarball":"https://registry.npmjs.org/@biznezstack/linkedin-post-mcp/-/linkedin-post-mcp-1.0.0.tgz","fileCount":7,"integrity":"sha512-T5pXCvF2H+Bnn4Q+mJKzt+K0q4rJbTynEXsiXNrypyIZBabdvhTkxCAgKCZEgzQCay6TTSuwAP/WKnPCgeNy0A==","signatures":[{"sig":"MEQCIFiM+HPNdc9JItxZM0eiRMC/MO8U/igL675V5vfbK8lgAiAPmMv6Blz6Jl/uTJIhoDJ2SAK39TUK8qtAPga3N4HGCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32338},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"biznezstack","email":"hello@biznezstack.com"},"_npmVersion":"10.9.3","description":"MCP server for generating and posting LinkedIn content from transcripts","directories":{},"_nodeVersion":"22.18.0","dependencies":{"zod":"^3.24.1","axios":"^1.7.9","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.2","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/linkedin-post-mcp_1.0.0_1759585536138_0.6912127245779229","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@biznezstack/linkedin-post-mcp","version":"1.0.1","keywords":["mcp","linkedin","social-media","claude","ai"],"author":{"name":"biznezstack"},"license":"MIT","_id":"@biznezstack/linkedin-post-mcp@1.0.1","maintainers":[{"name":"biznezstack","email":"hello@biznezstack.com"}],"bin":{"linkedin-post-mcp":"dist/index.js"},"dist":{"shasum":"e6d5210a6c697c0c9bcdee8d2315abf1de4d5a3d","tarball":"https://registry.npmjs.org/@biznezstack/linkedin-post-mcp/-/linkedin-post-mcp-1.0.1.tgz","fileCount":7,"integrity":"sha512-nfHeeniBjrYkSu3v4/aNHzDzBmnTrJl4aC7SRCrJLWAKO+q1oSQWLwiNvqR3bkK9MjmJHAb34crOrkOEza6L2g==","signatures":[{"sig":"MEYCIQC6HAz3bv799cLLwwHLt7r/I4+0m3itAiKCn8Af9yC6sQIhAPwB0DDGiVU2i8BNcyhVuesAx49s9WK48RFe8ns2Lo9U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32338},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"biznezstack","email":"hello@biznezstack.com"},"_npmVersion":"10.9.3","description":"MCP server for generating and posting LinkedIn content from transcripts","directories":{},"_nodeVersion":"22.18.0","dependencies":{"zod":"^3.24.1","axios":"^1.7.9","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.2","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/linkedin-post-mcp_1.0.1_1759585573231_0.012438675607929106","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@biznezstack/linkedin-post-mcp","version":"1.0.2","description":"MCP server for generating and posting LinkedIn content from transcripts","main":"dist/index.js","type":"module","bin":{"linkedin-post-mcp":"dist/index.js"},"scripts":{"build":"tsc","prepare":"npm run build","watch":"tsc --watch","dev":"tsx src/index.ts"},"keywords":["mcp","linkedin","social-media","claude","ai"],"author":{"name":"biznezstack"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/mmaun/linkedIn-post.git"},"bugs":{"url":"https://github.com/mmaun/linkedIn-post/issues"},"homepage":"https://github.com/mmaun/linkedIn-post#readme","dependencies":{"@modelcontextprotocol/sdk":"^1.0.4","axios":"^1.7.9","zod":"^3.24.1"},"devDependencies":{"@types/node":"^22.10.5","tsx":"^4.19.2","typescript":"^5.7.2"},"engines":{"node":">=18.0.0"},"_id":"@biznezstack/linkedin-post-mcp@1.0.2","gitHead":"a138dd24a57f6b5184ebcf9b4973504f1172a6a8","types":"./dist/index.d.ts","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-TiyaqENhU9T8ZlUoSeuN+bn9ybuSlJ04I/k3kH4YOXD7sDYl0OWbiN3Ii9Q/qQ88owtzujTmxqkdetM39awtEQ==","shasum":"2c674aa1f4a04bfc402145c800d478ca30d623cc","tarball":"https://registry.npmjs.org/@biznezstack/linkedin-post-mcp/-/linkedin-post-mcp-1.0.2.tgz","fileCount":7,"unpackedSize":32575,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF3UTAKdDNOBrmxi3N9Nnzy1jPkFeFlyG63DreqFRr3VAiBdCu7IwWoHKbjV+l3/qsyqRLGLui/NluV5WoQJxujcTA=="}]},"_npmUser":{"name":"biznezstack","email":"hello@biznezstack.com"},"directories":{},"maintainers":[{"name":"biznezstack","email":"hello@biznezstack.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/linkedin-post-mcp_1.0.2_1759586008567_0.7118260521743434"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-04T13:45:36.033Z","modified":"2025-10-04T13:53:28.937Z","1.0.0":"2025-10-04T13:45:36.309Z","1.0.1":"2025-10-04T13:46:13.406Z","1.0.2":"2025-10-04T13:53:28.750Z"},"author":{"name":"biznezstack"},"license":"MIT","keywords":["mcp","linkedin","social-media","claude","ai"],"description":"MCP server for generating and posting LinkedIn content from transcripts","maintainers":[{"name":"biznezstack","email":"hello@biznezstack.com"}],"readme":"# LinkedIn Post MCP Server\n\nA Model Context Protocol (MCP) server that enables AI assistants like Claude to generate and publish LinkedIn posts from transcripts or custom text.\n\n## Features\n\n- 🎯 **Generate Multiple Post Options**: Create 3 different LinkedIn post variations from a transcript\n- 📝 **Customizable Tone**: Choose from professional, casual, or inspiring tones\n- 🚀 **Direct Posting**: Publish posts directly to LinkedIn\n- 💾 **State Management**: Review and select from generated options\n- 🔧 **Easy Configuration**: Set up via Claude Desktop configuration\n\n## Installation\n\n### Option 1: Use via npx (Recommended)\n\nNo installation needed! Just configure Claude Desktop to use:\n\n```bash\nnpx @yourusername/linkedin-post-mcp\n```\n\n### Option 2: Install Globally\n\n```bash\nnpm install -g @yourusername/linkedin-post-mcp\n```\n\n## Prerequisites\n\nBefore using this MCP server, you need:\n\n1. **LinkedIn Access Token**: Get your OAuth 2.0 access token from LinkedIn's Developer Portal\n   - Create an app at https://www.linkedin.com/developers/apps\n   - Request the following permissions: `w_member_social`, `r_liteprofile`\n   - Generate an access token\n\n2. **LinkedIn User URN**: Your LinkedIn user identifier (format: `urn:li:person:XXXXXXXXXX`)\n   - You can get this from LinkedIn's API or your developer app settings\n\n## Configuration\n\n### Claude Desktop Setup\n\nAdd this configuration to your Claude Desktop config file:\n\n**MacOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n**Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"linkedin-post\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"@yourusername/linkedin-post-mcp\",\n        \"--access-token\",\n        \"YOUR_LINKEDIN_ACCESS_TOKEN_HERE\",\n        \"--user-urn\",\n        \"urn:li:person:YOUR_USER_ID_HERE\"\n      ]\n    }\n  }\n}\n```\n\n**Example**:\n```json\n{\n  \"mcpServers\": {\n    \"linkedin-post\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"@yourusername/linkedin-post-mcp\",\n        \"--access-token\",\n        \"AQVABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnop\",\n        \"--user-urn\",\n        \"urn:li:person:gxDS3ZTiss\"\n      ]\n    }\n  }\n}\n```\n\n### Using with Cline or Other MCP Clients\n\nFor other MCP clients, use similar configuration with the appropriate format for that client.\n\n## Available Tools\n\nOnce configured, Claude can use these tools:\n\n### 1. `generate_linkedin_options_from_transcript`\n\nGenerate 3 LinkedIn post options from a transcript.\n\n**Parameters**:\n- `transcript` (required): The transcript content to analyze\n- `tone` (optional): Tone for posts - \"professional\" (default), \"casual\", or \"inspiring\"\n- `focus` (optional): Focus area - \"general\" (default), \"insights\", \"takeaways\", \"announcement\"\n\n**Example**:\n```\nGenerate LinkedIn post options from this transcript: \"Today we discussed the importance of AI in modern business...\"\n```\n\n### 2. `post_selected_linkedin_option`\n\nPost one of the previously generated options to LinkedIn.\n\n**Parameters**:\n- `option_number` (required): Which option to post (1, 2, or 3)\n\n**Example**:\n```\nPost option 2 to LinkedIn\n```\n\n### 3. `create_linkedin_post_directly`\n\nPost custom content directly to LinkedIn without generating options.\n\n**Parameters**:\n- `post_text` (required): The text content to publish\n\n**Example**:\n```\nPost this directly to LinkedIn: \"Excited to share my latest project! 🚀\"\n```\n\n### 4. `view_current_linkedin_options`\n\nView the currently generated LinkedIn post options.\n\n**Example**:\n```\nShow me the current LinkedIn post options\n```\n\n## Usage Examples\n\n### Example 1: Generate and Post from Transcript\n\n1. **Generate options**:\n   ```\n   Generate LinkedIn post options with a professional tone from this transcript:\n   \"In today's meeting, we explored how AI is transforming customer service...\"\n   ```\n\n2. **Review options**:\n   ```\n   Show me the current options\n   ```\n\n3. **Post selected option**:\n   ```\n   Post option 1 to LinkedIn\n   ```\n\n### Example 2: Direct Post\n\n```\nPost this to LinkedIn: \"Just wrapped up an amazing workshop on leadership! \nKey takeaway: Listen more, speak less. #Leadership #Growth\"\n```\n\n### Example 3: Custom Tone\n\n```\nGenerate casual LinkedIn posts from this transcript with focus on insights:\n\"We had a great discussion about work-life balance...\"\n```\n\n## Development\n\n### Local Development\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/yourusername/linkedin-post-mcp.git\n   cd linkedin-post-mcp\n   ```\n\n2. Install dependencies:\n   ```bash\n   npm install\n   ```\n\n3. Build the project:\n   ```bash\n   npm run build\n   ```\n\n4. Run in development mode:\n   ```bash\n   npm run dev -- --access-token YOUR_TOKEN --user-urn YOUR_URN\n   ```\n\n### Project Structure\n\n```\nlinkedin-post-mcp/\n├── src/\n│   └── index.ts          # Main server implementation\n├── dist/                 # Compiled JavaScript (generated)\n├── package.json\n├── tsconfig.json\n└── README.md\n```\n\n## Security Notes\n\n⚠️ **Important Security Considerations**:\n\n- **Never commit** your LinkedIn access token to version control\n- Access tokens should be treated as passwords\n- Consider token expiration and refresh mechanisms for production use\n- The configuration file contains sensitive credentials - protect it accordingly\n- Use environment variables or secure credential storage in production\n\n## Troubleshooting\n\n### \"Missing required credentials\" Error\n\nMake sure you've provided both `--access-token` and `--user-urn` in your Claude Desktop configuration.\n\n### \"HTTP error: 401\" When Posting\n\nYour access token may be expired or invalid. Generate a new token from LinkedIn Developer Portal.\n\n### Posts Not Appearing\n\n- Verify your LinkedIn app has the correct permissions (`w_member_social`)\n- Check that your access token is valid\n- Ensure your User URN is correct\n\n### Claude Doesn't See the Tools\n\n- Restart Claude Desktop after updating the configuration\n- Check that the JSON configuration is valid (no syntax errors)\n- Verify the npx command can run in your terminal\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nMIT\n\n## Support\n\nFor issues and questions:\n- GitHub Issues: https://github.com/yourusername/linkedin-post-mcp/issues\n- LinkedIn Developer Docs: https://docs.microsoft.com/en-us/linkedin/\n\n## Changelog\n\n### Version 1.0.0\n- Initial release\n- Support for transcript-based post generation\n- Multiple tone options (professional, casual, inspiring)\n- Direct posting capability\n- State management for generated options\n\n","readmeFilename":"README.md","homepage":"https://github.com/mmaun/linkedIn-post#readme","repository":{"type":"git","url":"git+https://github.com/mmaun/linkedIn-post.git"},"bugs":{"url":"https://github.com/mmaun/linkedIn-post/issues"}}