LinkedIn Insights MCP Server
Um servidor MCP (Model Context Protocol) para análise de dados de posts do LinkedIn armazenados em MongoDB.
📋 Sobre o Projeto
Este projeto implementa um servidor MCP que se conecta a um banco MongoDB contendo dados de posts do LinkedIn e fornece ferramentas e recursos para análise desses dados. É ideal para análise de engajamento, performance de posts e insights de conteúdo.
🚀 Funcionalidades
Recursos (Resources)
- Todos os Posts: Lista completa de posts
- Top Posts: Posts com maior número de impressões
- Posts Mais Engajados: Posts com maior taxa de engajamento
- Resumo Analytics: Estatísticas gerais dos posts
Ferramentas (Tools)
- search_posts: Busca posts com filtros específicos (impressões, datas, conteúdo)
- get_post_details: Obtém detalhes de um post específico por ID
- analyze_engagement: Analisa métricas de engajamento dos posts
📊 Estrutura dos Dados
Os posts do LinkedIn têm a seguinte estrutura:
interface LinkedInPost {
_id: { $oid: string };
url: string;
comments: number;
content: string;
impressions: number;
reactions: number;
shares: number;
postedAt: string;
}🛠️ Instalação
- Clone o repositório:
git clone
cd mcp-linkeding-mongo- Instale as dependências:
npm install- Configure as variáveis de ambiente criando um arquivo
.env:
MONGO_CONNECTION_STRING=mongodb://localhost:27017
MONGO_DB=linkedin_insights_v2
MONGO_COLLECTION_NAME=linkedin_posts🔧 Scripts Disponíveis
npm run build: Compila o TypeScript para JavaScriptnpm run start: Executa o servidor compiladonpm run dev: Executa em modo desenvolvimento com ts-nodenpm run mcp: Alias para executar o servidor MCP
📱 Como Usar
Executar o Servidor
npm run mcpConectar via MCP
O servidor implementa o protocolo MCP e pode ser usado com qualquer cliente compatível. Ele se comunica via STDIO.
Exemplos de Uso
Buscar posts com filtros:
{
"tool": "search_posts",
"arguments": {
"minImpressions": 1000,
"startDate": "2024-01-01",
"hasContent": true
}
}Obter detalhes de um post:
{
"tool": "get_post_details",
"arguments": {
"postId": "60f7b2b4c4f5a3b2d4e6f7a8"
}
}🗄️ Configuração do MongoDB
O projeto espera uma coleção MongoDB com posts do LinkedIn. Certifique-se de que:
- O MongoDB está rodando e acessível
- O banco de dados e coleção existem
- As credenciais estão corretas no
.env
📈 Métricas Calculadas
- Taxa de Engajamento:
(reactions + comments + shares) / impressions * 100 - Total de Interações:
reactions + comments + shares - Impressões Médias: Média de impressões por post
🔒 Variáveis de Ambiente
| Variável | Descrição | Padrão |
|---|---|---|
MONGO_CONNECTION_STRING | String de conexão MongoDB | mongodb://localhost:27017 |
MONGO_DB | Nome do banco de dados | linkedin_insights_v2 |
MONGO_COLLECTION_NAME | Nome da coleção | linkedin_posts |
🛡️ Tratamento de Erros
O servidor inclui tratamento de erros para:
- Conexão com MongoDB
- Posts não encontrados
- Ferramentas inexistentes
- Recursos inválidos
📦 Dependências
@modelcontextprotocol/sdk: SDK para implementação MCPmongodb: Driver oficial do MongoDBdotenv: Carregamento de variáveis de ambientezod: Validação de esquemas TypeScript
🤝 Desenvolvimento
O projeto usa TypeScript e está estruturado em módulos:
src/index.ts: Servidor principal e configuração MCPsrc/database.ts: Gerenciador de conexão e operações MongoDBsrc/tools.ts: Implementação das ferramentas MCPsrc/resources.ts: Implementação dos recursos MCPsrc/types.ts: Definições de tipos e esquemas
📄 Licença
ISC
