{"id":30188138,"url":"https://github.com/zestia/capsule-mcp-scala","last_synced_at":"2025-08-12T16:43:58.008Z","repository":{"id":309361044,"uuid":"1035962932","full_name":"zestia/capsule-mcp-scala","owner":"zestia","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-11T11:51:37.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-11T13:28:18.277Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zestia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-11T11:03:09.000Z","updated_at":"2025-08-11T11:51:40.000Z","dependencies_parsed_at":"2025-08-11T13:28:19.402Z","dependency_job_id":"b409156a-a5ba-4789-af73-447a2bab602f","html_url":"https://github.com/zestia/capsule-mcp-scala","commit_stats":null,"previous_names":["zestia/capsule-mcp-scala"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/zestia/capsule-mcp-scala","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zestia%2Fcapsule-mcp-scala","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zestia%2Fcapsule-mcp-scala/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zestia%2Fcapsule-mcp-scala/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zestia%2Fcapsule-mcp-scala/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zestia","download_url":"https://codeload.github.com/zestia/capsule-mcp-scala/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zestia%2Fcapsule-mcp-scala/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270099897,"owners_count":24527041,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-12T02:00:09.011Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-12T16:43:55.291Z","updated_at":"2025-08-12T16:43:57.886Z","avatar_url":"https://github.com/zestia.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Capsule CRM MCP Server\n[![Model Context Protocol](https://img.shields.io/badge/MCP-Compatible-blue)](https://modelcontextprotocol.io) [![Scala 3.6+](https://img.shields.io/badge/scala3--compiler-3.6.4-green.svg?)](https://python.org) [![Capsule CRM API v2](https://img.shields.io/badge/Capsule%20CRM-API%20v2-orange)](https://developer.capsulecrm.com)\n\nScala3-based MCP server implementation PoC that connects to your Capsule CRM data.\n\n## Quick Start\nYou can get started with the server and use it with your favourite AI assistant.\n\n### 1. Get Your Capsule API Token\n1. Log into your Capsule CRM account\n2. Go to **My Preferences → API Authentication**\n3. Create a new API token and copy it\n\n### 2. Install \u0026 Configure\n\n#### macOS Setup\n\n```bash\n# Clone this repo:\ngit clone git@github.com:zestia/capsule-mcp-scala.git\ncd capsule-mcp-scala\n\n# Install jEnv (skip if already installed):\nbrew install jenv\n\n# Add jenv to your zsh (skip if already installed):\necho 'export PATH=\"$HOME/.jenv/bin:$PATH\"' \u003e\u003e ~/.zshrc\necho 'eval \"$(jenv init -)\"' \u003e\u003e ~/.zshrc\n\n# reload your terminal session:\nexec $SHELL -l\n\n# Install Java 17 and add to jenv (skip if already installed):\nbrew install openjdk@17\njenv add $(/usr/libexec/java_home -v 17)\n\n# Install scala-cli (skip if already installed):\nbrew install Virtuslab/scala-cli/scala-cli\n\n# reload your terminal session:\nexec $SHELL -l\n```\n\nConfirm [jEnv](https://github.com/jenv/jenv?tab=readme-ov-file#1-getting-started) and [scala-cli](https://scala-cli.virtuslab.org/install/) installation with:\n```bash\njenv --version\nscala-cli --version\n```\n\n#### Linux/Windows Setup\nComing soon\n\n### 3. Connect to Your AI Assistant\n\n#### Claude Desktop\n\nAdd the following to your Claude Desktop config file and replace:\n1. `your-api-token` with your Capsule API token.\n2. `/path/to/your/` with the path to your `capsule-mcp-scala` directory that you cloned via git.\n\n**Config Location:**\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    \"capsule-mcp\": {\n      \"command\": \"/path/to/your/capsule-mcp-scala/runServer.sh\",\n      \"args\": [],\n      \"transport\": \"stdio\",\n      \"env\": {\n        \"CAPSULE_API_TOKEN\": \"your-api-token\",\n        \"WORKSPACE\": \"/path/to/your/capsule-mcp-scala\"\n      }\n    }\n  }\n}\n```\n\n\nYou can also optionally override the `CAPSULE_BASE_URL` environment variable to point to a different Capsule CRM instance.\n\n##### Example\n```json\n{\n  \"mcpServers\": {\n    \"capsule-mcp\": {\n      \"command\": \"/Users/mirandahawkes/projects/capsule-mcp-scala/runServer.sh\",\n      \"args\": [],\n      \"transport\": \"stdio\",\n      \"env\": {\n        \"CAPSULE_API_TOKEN\": \"abc123\",\n        \"CAPSULE_BASE_URL\": \"https://api.capsule.run\",\n        \"WORKSPACE\": \"/Users/mirandahawkes/projects/capsule-mcp-scala\"\n      }\n    }\n  }\n}\n```\n\n#### Cursor\nTODO\n\n#### Other MCP Clients\nThis server is compatible with any MCP client. Refer to your client's documentation for MCP server configuration.\n\n## Start Using\n1. Restart your AI assistant\n2. Start asking questions\n\n## What You Can Access\n\nThis MCP server provides **complete read-only access** to your Capsule CRM:\n\n| **Data Type** | **What You Can Do** |\n|---------------|-------------------|\n| **👥 Contacts** | List, Search by field |\n| **💼 Opportunities** | List, Search by field |\n| **📋 Projects** | List, Search by field |\n| **Custom Fields** | List |\n| **Users** | List |\n| **Teams** | List |\n| **Tasks** | Coming soon |\n| **Activity** | Coming soon |\n\n## Development\n\n### Running\nThere are a few options for running / testing the server locally during development.\n\n#### AI Assistant / MCP Client\nRefer to [Quick Start](#quick-start).\n\n#### MCP Inspector (recommended)\nThe [MCP Inspector](https://modelcontextprotocol.io/legacy/tools/inspector) is an interactive developer tool for testing and debugging MCP servers.\n\nSee [developer documentation](https://github.com/modelcontextprotocol/inspector?tab=readme-ov-file#running-the-inspector) for installation.\n\n```bash\nnpx @modelcontextprotocol/inspector scala-cli . -e CAPSULE_API_TOKEN=yourToken -e CAPSULE_BASE_URL=https://api.capsule.run\n```\n\n#### Scala CLI\nRunning your MCP server via your AI Assistant or the MCP Inspector starts up the server via `scala-cli` in the background.\nTo run this manually instead, use:\n```bash\nscala-cli run . -e CAPSULE_API_TOKEN=yourToken\n```\n\nYou can optionally pass `-e CAPSULE_BASE_URL=baseUrl` to test against a specific instance of Capsule.\nThe default is `https://api.capsulecrm.com`.\n\nNote that if you make changes to files, you will need to restart the server to pick these up.\n\n#### SBT\nTBC instructions on running server via sbt - need to figure out sending SBT logs to a file so it doesn't break the stdio transport used by MCP.\n\n### Debugging\nServer logs are written to `/capsule-mcp-scala/capsule-mcp.log`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzestia%2Fcapsule-mcp-scala","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzestia%2Fcapsule-mcp-scala","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzestia%2Fcapsule-mcp-scala/lists"}