{
  "markdown": "<p align=\"center\">\n  <img src=\"logo.png\" alt=\"Rolli IQ\" width=\"200\" />\n</p>\n\n<h1 align=\"center\">rolli-mcp</h1>\n\n<p align=\"center\">\n  MCP server for <a href=\"https://rolli.ai\">Rolli IQ</a> — social media search and analytics across X, Reddit, YouTube, Facebook, Instagram, Threads, Bluesky, and more.\n</p>\n\n<a href=\"https://glama.ai/mcp/servers/@rolliinc/rolli-mcp\">\n  <img width=\"380\" height=\"200\" src=\"https://glama.ai/mcp/servers/@rolliinc/rolli-mcp/badge\" alt=\"Rolli MCP server\" />\n</a>\n\n## Tools\n\n| Tool | Description |\n|------|-------------|\n| `list_keyword_searches` | List all keyword searches, filtered by status |\n| `keyword_search` | Create a keyword/hashtag search and return results when complete |\n| `get_keyword_search` | Get keyword search results (status, analytics, posts) |\n| `list_user_searches` | List all user searches, filtered by status |\n| `user_search` | Create a user profile search and return results when complete |\n| `get_user_search` | Get user search results (profile, metrics, content analysis) |\n| `list_expert_searches` | List all expert searches, filtered by status |\n| `expert_search` | Find experts matching a natural-language query and return results when complete |\n| `get_expert_search` | Get expert search results (recommended experts with AI-generated match summaries) |\n| `get_topic_tree` | Get conversation topic tree for a keyword search |\n| `get_keyword_search_posts` | Get raw posts from a keyword search |\n| `get_user_search_posts` | Get raw posts from a user search |\n| `list_agent_runs` | List Rolli Agent runs (AI-driven social intelligence investigations) |\n| `start_agent_run` | Start a Rolli Agent investigation and return the markdown report when complete |\n| `get_agent_run` | Get a Rolli Agent run by ID (progress while running, full report when complete) |\n| `cancel_agent_run` | Cancel a pending or running Rolli Agent run |\n| `rerun_agent_run` | Retry a failed, waiting, or stuck Rolli Agent run |\n| `update_agent_run` | Pin or rename a Rolli Agent run |\n| `delete_agent_run` | Soft-delete a completed or failed Rolli Agent run |\n| `list_agent_schedules` | List Rolli Agent scheduled reports |\n| `create_agent_schedule` | Create a recurring Rolli Agent report (daily/weekly/monthly/once) |\n| `get_agent_schedule` | Get a Rolli Agent schedule with its 10 most recent runs |\n| `update_agent_schedule` | Update a Rolli Agent schedule |\n| `delete_agent_schedule` | Permanently delete a Rolli Agent schedule |\n| `pause_agent_schedule` | Pause a Rolli Agent schedule |\n| `resume_agent_schedule` | Resume a paused Rolli Agent schedule |\n| `list_agent_schedule_runs` | List the full execution history of a Rolli Agent schedule |\n| `get_integration_setup` | Get current integration settings (webhook URL, name) |\n| `update_integration_setup` | Set the webhook URL for search completion notifications |\n| `get_usage` | Get API usage data and per-user breakdowns |\n\n## Setup\n\nYou need a Rolli account with API access. Get your API token from [rolli.ai](https://rolli.ai).\n\n### Claude Desktop / Claude Code / VS Code / Cursor / Windsurf\n\nAdd to your MCP config (`claude_desktop_config.json`, `.vscode/mcp.json`, or equivalent):\n\n```json\n{\n  \"mcpServers\": {\n    \"rolli\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@rolli/mcp\"],\n      \"env\": {\n        \"ROLLI_API_TOKEN\": \"your_token\"\n      }\n    }\n  }\n}\n```\n\n`ROLLI_USER_ID` is optional and defaults to `\"rolli-mcp\"`. Set it to override with your own user ID.\n\n### Optional Environment Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `ROLLI_USER_ID` | `\"rolli-mcp\"` | User ID sent with API requests |\n| `ROLLI_POLL_INTERVAL_MS` | `5000` | Polling interval (ms) when waiting for search results |\n| `ROLLI_MAX_POLL_MS` | `600000` | Max time (ms) to wait before search timeout (default: 10 min) |\n\n### Smithery\n\nThis server includes a `smithery.yaml` for deployment via [Smithery](https://smithery.ai). It will prompt for your API token during setup.\n\n## Usage Examples\n\n**Search for a keyword across social media:**\n> \"Search for posts about 'artificial intelligence' on Twitter and Reddit from the last week\"\n\n**Analyze a user profile:**\n> \"Look up @elonmusk on Twitter and analyze their recent posts\"\n\n**Get topic breakdown:**\n> \"Show me the topic tree for my keyword search #123\"\n\n**Check API usage:**\n> \"How many searches have I used this month?\"\n\n**Set up a webhook:**\n> \"Set my webhook URL to https://myapp.com/rolli-callback\"\n\n## Optional X/Twitter Source Context\n\nRolli is useful for cross-platform social search, topic trees, user analysis,\nand scheduled social intelligence reports. If an agent also needs reviewed\naccount-scoped X/Twitter source evidence before a Rolli investigation, collect\nthat evidence in an approved OpenClaw workflow such as\n[TweetClaw](https://github.com/Xquik-dev/tweetclaw), then pass only the\nreviewed handles, post URLs, post IDs, excerpts, or summary notes into Rolli\nprompts.\n\nKeep Rolli and TweetClaw credentials separate. Do not transfer API tokens,\ncookies, sessions, or account credentials between tools. Treat TweetClaw output\nas source context for Rolli searches and reports, not as publishing approval.\n\n## Development\n\n```sh\nnpm ci\nnpm run lint    # ESLint\nnpm run build   # TypeScript\nnpm test        # Vitest\n```\n\nCI runs on every push and PR to `master`. Releases published on GitHub automatically publish to npm (requires `NPM_TOKEN` repo secret).\n\n## License\n\nMIT\n",
  "bytes": 5456,
  "sha": "8edee6088bd2e633e44fbff1cfe51097cc7b01a4674617669947f614d46b110f",
  "repo_slug": "rolliinc/rolli-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_ai_rolli_mcp_882d8cc6/readme"
}