{"id":48908716,"url":"https://github.com/aojdevstudio/open-dental-mcp","last_synced_at":"2026-04-16T22:03:57.768Z","repository":{"id":285504331,"uuid":"957222500","full_name":"AojdevStudio/open-dental-mcp","owner":"AojdevStudio","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-01T04:36:07.000Z","size":105,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T05:27:28.889Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/AojdevStudio.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}},"created_at":"2025-03-29T20:56:26.000Z","updated_at":"2025-04-01T04:36:11.000Z","dependencies_parsed_at":"2025-04-01T05:37:34.782Z","dependency_job_id":null,"html_url":"https://github.com/AojdevStudio/open-dental-mcp","commit_stats":null,"previous_names":["aojdevstudio/open-dental-mcp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AojdevStudio/open-dental-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AojdevStudio%2Fopen-dental-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AojdevStudio%2Fopen-dental-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AojdevStudio%2Fopen-dental-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AojdevStudio%2Fopen-dental-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AojdevStudio","download_url":"https://codeload.github.com/AojdevStudio/open-dental-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AojdevStudio%2Fopen-dental-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31905896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"ssl_error","status_checked_at":"2026-04-16T18:21:47.142Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2026-04-16T22:03:40.089Z","updated_at":"2026-04-16T22:03:57.746Z","avatar_url":"https://github.com/AojdevStudio.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenDental MCP Server\n\nThis repository contains an MCP (Model Context Protocol) server for querying OpenDental documentation using Qdrant vector database.\n\n## What is This?\n\nThis tool helps you search through OpenDental documentation using natural language questions. Instead of searching for exact keywords, you can ask questions like \"How do I create an appointment?\" and get relevant answers from the documentation.\n\n## Platform-Specific Guides\n\nFor non-technical users, we've created detailed step-by-step guides:\n\n- [Windows Installation and Usage Guide](WINDOWS-GUIDE.md)\n- [macOS Installation and Usage Guide](MACOS-GUIDE.md)\n\n## System Requirements\n\n- **Windows, macOS, or Linux**\n- Node.js 18 or higher ([Download here](https://nodejs.org/))\n- Python 3.6 or higher ([Download here](https://www.python.org/downloads/))\n- Qdrant vector database (automatically runs with Docker or standalone)\n- OpenAI API key for generating embeddings ([Get one here](https://platform.openai.com/account/api-keys))\n\n## Important Note on API Keys\n\nThis project requires API keys to function. For security reasons:\n\n- Never commit real API keys to the repository\n- Use the provided `.env.example` files as templates\n- Create your own `.env` files with your actual keys\n- The `.gitignore` file is configured to exclude `.env` files from Git\n\nIf you need to share configuration, always use placeholder values like `your_openai_api_key` instead of real keys.\n\n## Installation Instructions\n\n### Step 1: Clone the Repository\n\n#### Windows\n```\ngit clone https://github.com/yourusername/open-dental-mcp.git\ncd open-dental-mcp\n```\n\n#### macOS/Linux\n```bash\ngit clone https://github.com/yourusername/open-dental-mcp.git\ncd open-dental-mcp\n```\n\n### Step 2: Install Qdrant\n\nYou need to have Qdrant running locally. There are several ways to install it:\n\n#### Using Docker (Recommended)\n```bash\ndocker pull qdrant/qdrant\ndocker run -p 6333:6333 -p 6334:6334 -v $(pwd)/qdrant_storage:/qdrant/storage qdrant/qdrant\n```\n\n#### On Windows without Docker\nYou can download the latest release from [Qdrant GitHub releases](https://github.com/qdrant/qdrant/releases) and run it locally.\n\n#### On macOS without Docker\nYou can install Qdrant with Homebrew:\n```bash\nbrew install qdrant/qdrant/qdrant\nqdrant\n```\n\n### Step 3: Configure Environment Variables\n\nYou need to set up your environment variables for Qdrant and OpenAI (for embeddings).\n\n#### Windows\n1. Create a file named `.env` in the `mcp-openai-filesearch` folder based on `.env.example`\n2. Add the following content (replace OpenAI API key with your own):\n```\nOPENAI_API_KEY=your_openai_api_key\nQDRANT_HOST=localhost\nQDRANT_PORT=6333\nQDRANT_COLLECTION=open_dental_docs\n```\n\n#### macOS/Linux\n1. Create a file named `.env` in the `mcp-openai-filesearch` folder based on `.env.example`\n2. Add the following content (replace OpenAI API key with your own):\n```\nOPENAI_API_KEY=your_openai_api_key\nQDRANT_HOST=localhost\nQDRANT_PORT=6333\nQDRANT_COLLECTION=open_dental_docs\n```\n\n### Step 4: Install Dependencies\n\nFrom the root directory:\n\n```bash\nnpm run install:deps\n```\n\nOr manually:\n\n#### Windows\n```\ncd mcp-openai-filesearch\nnpm install\n```\n\n#### macOS/Linux\n```bash\ncd mcp-openai-filesearch\nnpm install\n```\n\n### Step 5: Build the Server\n\nFrom the root directory:\n\n```bash\nnpm run build\n```\n\nOr manually:\n\n#### Windows\n```\ncd mcp-openai-filesearch\nnpm run build\n```\n\n#### macOS/Linux\n```bash\ncd mcp-openai-filesearch\nnpm run build\n```\n\n### Step 6: Setup Qdrant Collection\n\nBefore starting the server, you need to set up the Qdrant collection:\n\n```bash\ncd mcp-openai-filesearch\nnpm run setup:qdrant\n```\n\n## Client Configuration\n\nTo connect your MCP client (like Cursor) to the OpenDental MCP server, you need to create a configuration file. This tells your client how to launch and communicate with the server.\n\n### Setting Up mcp.json\n\n1. Create a file named `mcp.json` in the `.cursor` directory of your project (or where your MCP client looks for configurations)\n2. Add the following configuration, adjusting paths to match your local installation:\n\n#### Windows Configuration\n```json\n{\n  \"mcpServers\": {\n    \"OpenDental-MCP\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"C:\\\\path\\\\to\\\\open-dental-mcp\\\\mcp-openai-filesearch\\\\dist\\\\server-qdrant.js\"\n      ],\n      \"transport\": \"stdio\",\n      \"description\": \"Qdrant-based MCP server for OpenDental docs.\"\n    }\n  }\n}\n```\n\n#### macOS/Linux Configuration\n```json\n{\n  \"mcpServers\": {\n    \"OpenDental-MCP\": {\n      \"command\": \"/usr/local/bin/node\",\n      \"args\": [\n        \"/path/to/open-dental-mcp/mcp-openai-filesearch/dist/server-qdrant.js\"\n      ],\n      \"transport\": \"stdio\",\n      \"description\": \"Qdrant-based MCP server for OpenDental docs.\"\n    }\n  }\n}\n```\n\n### Notes for Client Configuration:\n\n1. **Command Path**: \n   - For Windows, you can usually just use `\"command\": \"node\"` if Node.js is in your PATH\n   - For macOS/Linux, use the full path to your Node.js binary (find it with `which node`)\n\n2. **Server Path**: \n   - Make sure to point to `server-qdrant.js` in the `dist` directory\n   - Use the correct path separator for your OS (`\\\\` for Windows, `/` for macOS/Linux)\n   - Use absolute paths to avoid any confusion\n\n3. **Verify Configuration**:\n   - After creating the mcp.json file, ensure your MCP client can detect and connect to the server\n   - If you're using Cursor, go to Settings \u003e MCP and check if \"OpenDental-MCP\" appears in the list of available servers\n\n## Running the MCP Server\n\nFrom the root directory:\n\n```bash\nnpm run start:qdrant    # Qdrant-based server\n```\n\nOr manually:\n\n### Windows\n```\ncd mcp-openai-filesearch\nnpm run start:qdrant\n```\n\n### macOS/Linux\n```bash\ncd mcp-openai-filesearch\nnpm run start:qdrant\n```\n\nThe server will start running on `http://localhost:3000`.\n\n## Testing the Server\n\nFrom the root directory:\n\n```bash\nnpm run query:qdrant -- --query \"How do I create an appointment in Open Dental?\"\n```\n\nOr manually:\n\n### Windows\n```\ncd mcp-openai-filesearch\nnpm run test:qdrant\n```\n\n### macOS/Linux\n```bash\ncd mcp-openai-filesearch\nnpm run test:qdrant\n```\n\n## Uploading Documentation\n\nIf you need to upload your own documentation to the Qdrant vector database:\n\n1. Place your documentation files in a folder\n2. Edit the upload script to point to your documentation folder\n3. Run the setup script to create embeddings and upload them to Qdrant\n\n## Troubleshooting\n\n### Common Issues on Windows\n\n1. **Path Errors**: Make sure to use the correct path format (e.g., `C:\\path\\to\\file` or `C:/path/to/file`) in your configuration\n2. **Permission Denied**: Run your command prompt or PowerShell as Administrator if you encounter permission issues\n3. **NPM Errors**: Make sure your Node.js installation is up to date\n4. **Port Already in Use**: If port 3000 or 6333 is already in use, check which process is using it and terminate that process\n\n### Common Issues on macOS/Linux\n\n1. **Permission Denied**: You may need to use `sudo` for some commands or fix file permissions with `chmod +x filename.py`\n2. **Python Version**: Use `python3` explicitly rather than `python` if you have multiple versions installed\n3. **Port Already in Use**: Check if port 3000 is already in use with `lsof -i :3000` and kill the process if needed\n4. **Docker Issues**: If using Docker for Qdrant, make sure Docker is running and the Qdrant container is active\n\n### API Key Issues\n\n- Ensure your OpenAI API key is valid (it's still needed for generating embeddings)\n- Make sure there are no extra spaces or characters in the `.env` file\n\n## Getting Help\n\nIf you encounter issues not covered here, please:\n\n1. Check the [Qdrant documentation](https://qdrant.tech/documentation/)\n2. Check the OpenAI documentation for [embeddings](https://platform.openai.com/docs/guides/embeddings)\n3. Create an issue in this repository\n4. Contact the development team through your organization's support channels\n\n## License\n\nThis project is proprietary and confidential.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faojdevstudio%2Fopen-dental-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faojdevstudio%2Fopen-dental-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faojdevstudio%2Fopen-dental-mcp/lists"}