{
  "markdown": "# Lolipop MCP Server\n\n[日本語版 README はこちら / Japanese README](./README.ja.md)\n\nThe official remote [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for [Lolipop Rental Server](https://lolipop.jp/) — a shared web hosting service operated by [GMO Pepabo, Inc.](https://pepabo.com/)\n\nManage domains, subdomains, free SSL certificates, and WordPress installations — all through natural language conversations with AI assistants.\n\n## Endpoint\n\n```\nhttps://lolipop.jp/api/v1/mcp\n```\n\nTransport: Streamable HTTP. Authentication: Personal Access Token (PAT) via the `Authorization: Bearer` header.\n\n## Features\n\n- **Domain management** — add, list, update (public folder), and remove custom domains\n- **Subdomain management** — add, list, and remove subdomains\n- **SSL** — list free SSL certificates and request issuance (Let's Encrypt)\n- **WordPress** — list installations and run a one-click install\n- **Account info** — retrieve the authenticated API key's account information (plan, server, rate limit)\n\nPricing: **MCP server access is free.** A valid Lolipop Rental Server contract is required.\n\n## Authentication\n\nThe Lolipop MCP server authenticates with a **Personal Access Token (PAT)**, issued from the Lolipop user panel.\n\n1. Sign in to the [Lolipop user panel](https://user.lolipop.jp/) and issue an API key (PAT). Copy the token (`lp_pat_...`).\n2. Register the endpoint URL **together with the `Authorization: Bearer <PAT>` header** in your MCP client (see Quick Start below).\n\nScopes are selected at issuance time (`domains:read` / `domains:write` / `ssl:read` / `ssl:write` / `wordpress:read` / `wordpress:write`). Requests exceeding the token's scope return `403 insufficient_scope`.\n\n> **Note:** claude.ai (the web app's custom connectors) currently requires OAuth and cannot pass a static `Authorization` header, so it is not supported at this time. Use a client that supports custom headers (Claude Code, Cursor, Gemini CLI, OpenAI Codex), or the `mcp-remote` stdio bridge below.\n\n## Quick Start\n\n> **Keep your PAT out of committed files and shell history.** Store it in an environment variable (e.g. `LOLIPOP_PAT`) and reference it, rather than pasting the raw token into a config file or a command line. The examples below use `${LOLIPOP_PAT}`.\n\n```bash\nexport LOLIPOP_PAT=\"lp_pat_...\"   # your issued token\n```\n\n### Claude Code\n\n```bash\nclaude mcp add --transport http lolipop https://lolipop.jp/api/v1/mcp \\\n  --header \"Authorization: Bearer ${LOLIPOP_PAT}\"\n```\n\n[Claude Code MCP docs](https://docs.anthropic.com/en/docs/claude-code/mcp)\n\n### Cursor\n\nAdd to `.cursor/mcp.json`. Cursor expands `${env:VAR}` references, so the raw token stays in your environment, not the file:\n\n```json\n{\n  \"mcpServers\": {\n    \"lolipop\": {\n      \"url\": \"https://lolipop.jp/api/v1/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${env:LOLIPOP_PAT}\"\n      }\n    }\n  }\n}\n```\n\n### Gemini CLI\n\nAdd to `~/.gemini/settings.json`. Gemini CLI expands `$VAR` / `${VAR}` references from the environment:\n\n```json\n{\n  \"mcpServers\": {\n    \"lolipop\": {\n      \"httpUrl\": \"https://lolipop.jp/api/v1/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${LOLIPOP_PAT}\"\n      }\n    }\n  }\n}\n```\n\nSee the [Gemini CLI MCP server documentation](https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md) for details.\n\n### OpenAI Codex CLI\n\nCodex supports remote MCP servers and can read the token from an environment variable via `bearer_token_env_var`. Configure `https://lolipop.jp/api/v1/mcp` per the [Codex MCP documentation](https://developers.openai.com/codex/mcp):\n\n```toml\n[mcp_servers.lolipop]\nurl = \"https://lolipop.jp/api/v1/mcp\"\nbearer_token_env_var = \"LOLIPOP_PAT\"\n```\n\n### Local stdio bridge (for clients without custom-header support)\n\nUse [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) to bridge a stdio-only client to the remote endpoint. Reference the token via environment variable so it does not appear in the config file:\n\n```json\n{\n  \"mcpServers\": {\n    \"lolipop\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\", \"mcp-remote\", \"https://lolipop.jp/api/v1/mcp\",\n        \"--header\", \"Authorization: Bearer ${LOLIPOP_PAT}\"\n      ]\n    }\n  }\n}\n```\n\n## Documentation\n\n- [Official MCP server guide (Japanese)](https://lolipop.jp/developers/rentalserver/mcp/)\n- [Public API reference (Japanese)](https://lolipop.jp/developers/rentalserver/api/)\n\n## Requirements\n\n- A [Lolipop Rental Server](https://lolipop.jp/) account on a supported plan\n- A Personal Access Token (PAT) issued from the user panel\n- An MCP-compatible client that supports custom request headers (Claude Code, Cursor, Gemini CLI, OpenAI Codex CLI, etc.)\n\n## Support\n\n- For service-related inquiries: [Lolipop Support](https://lolipop.jp/support/)\n- For issues with this repository: please open a [GitHub Issue](https://github.com/pepabo/lolipop-mcp/issues)\n\n## License\n\n[MIT](./LICENSE)\n",
  "bytes": 4917,
  "sha": "e825da2dbd4169d4635f553c4daac0c00a2fb644302b7dd8a4c71d325ff26556",
  "repo_slug": "pepabo/lolipop-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_pepabo_lolipop_mcp_74d766ce/readme"
}