Content
# Sifely MCP Client
A bridge client that connects Claude Desktop to the remote Sifely MCP server. This allows you to use Sifely smart lock controls directly from Claude Desktop.
## Architecture
```
Claude Desktop ←→ Sifely MCP Client (stdio) ←→ Remote Sifely MCP Server (HTTP+SSE)
```
- **Claude Desktop**: Expects a local MCP server via stdio
- **Sifely MCP Client**: Acts as a bridge/proxy
- **Remote Sifely MCP Server**: HTTP+SSE server deployed on Vercel
## Installation
1. Clone and install dependencies:
```bash
git clone https://github.com/shahab53/sifely-mcp-client.git
cd sifely-mcp-client
npm install
```
2. Configure the remote server URL:
```bash
cp .env.example .env
# Edit .env and set REMOTE_MCP_SERVER_URL
```
3. Build the project:
```bash
npm run build
```
## Configuration
### Environment Variables
Create a `.env` file:
```bash
# Required: Your deployed Sifely MCP server URL
REMOTE_MCP_SERVER_URL=https://sifely-mcp-server.vercel.app
# Optional: Override defaults
# LOG_LEVEL=info
# CLIENT_ID=auto-generated-uuid
# CONNECTION_TIMEOUT=30000
```
### Claude Desktop Configuration
Add this to your Claude Desktop MCP configuration:
**On macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**On Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"sifely": {
"command": "node",
"args": ["/path/to/sifely-mcp-client/dist/index.js"]
}
}
}
```
Replace `/path/to/sifely-mcp-client` with the actual path to this project.
## Usage
### 1. Test the Client
First, test the connection to your remote server:
```bash
npm run test
```
This will verify:
- Connection to remote server
- Tool listing
- Resource listing
- Sample tool call
### 2. Start Claude Desktop
Once the test passes:
1. **Restart Claude Desktop** to load the new MCP configuration
2. **Open a new conversation** in Claude Desktop
3. **Try Sifely commands** like:
- "Check my Sifely authentication status"
- "List my Sifely groups"
- "Show me the available Sifely tools"
### 3. Available Commands
Through Claude Desktop, you can now use:
#### Authentication
- `sifely_authenticate` - Check authentication status (server uses environment credentials)
- `sifely_get_auth_status` - Get current authentication status
- `sifely_logout` - Logout and clear session
#### Group Management
- `sifely_list_groups` - List all groups in your Sifely account
> **Note**: The server currently implements only authentication and group management APIs. Additional features (lock operations, access codes, device management, history/logs) will be added in future releases as they are properly implemented according to official Sifely API documentation.
## Development
### Running in Development
```bash
npm run dev
```
### Testing Changes
```bash
# Test the remote connection
npm run test
# Test with Claude Desktop
# (restart Claude Desktop after changes)
```
### Logs
The client logs all activity. Check the console output for:
- Connection status
- Request/response details
- Error messages
## Troubleshooting
### Connection Issues
1. **Check your remote server URL** in `.env`
2. **Verify the remote server is running**:
```bash
curl https://sifely-mcp-server.vercel.app/health
```
3. **Check logs** for connection errors
### Claude Desktop Not Detecting
1. **Verify the config path** is correct for your OS
2. **Check the command path** points to the built `dist/index.js`
3. **Restart Claude Desktop** after config changes
4. **Check Claude Desktop logs** (if available)
### Tool Calls Failing
1. **Check authentication** with the remote server
2. **Verify environment variables** are set on the remote server
3. **Check remote server logs** for errors
## Files
- `src/index.ts` - Main bridge application
- `src/remote-client.ts` - HTTP+SSE client for remote server
- `src/config.ts` - Configuration management
- `src/logger.ts` - Logging utilities
- `test-client.js` - Test script for verification
## Repository
- **GitHub**: https://github.com/shahab53/sifely-mcp-client
- **Remote Server**: https://github.com/shahab53/sifely-mcp-server
- **Live Server**: https://sifely-mcp-server.vercel.app
## Related Projects
- **Sifely MCP Server**: The remote HTTP+SSE server this client connects to
- **Sifely API Documentation**: https://apidocs.sifely.com
- **MCP Protocol**: https://modelcontextprotocol.io
## License
MIT License