removed redundant tools
This commit is contained in:
94
CLAUDE.md
Normal file
94
CLAUDE.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Commands
|
||||
|
||||
### Build and Development
|
||||
```bash
|
||||
# Build TypeScript to JavaScript
|
||||
npm run build
|
||||
|
||||
# Watch mode for development
|
||||
npm run dev
|
||||
|
||||
# Run the built server
|
||||
npm start
|
||||
```
|
||||
|
||||
### Testing and Validation
|
||||
Before committing changes, ensure the TypeScript compiles without errors:
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
## Architecture Overview
|
||||
|
||||
This is an Appwrite Model Context Protocol (MCP) server that provides a comprehensive interface between Claude and Appwrite services. The server is built in TypeScript and uses the official Appwrite Node.js SDK.
|
||||
|
||||
### Key Components
|
||||
|
||||
1. **MCP Server Core** (`src/index.ts`):
|
||||
- Main server class `AppwriteMCPServer` that initializes all Appwrite service clients
|
||||
- Implements 135 tools covering all major Appwrite services
|
||||
- Uses environment variables for configuration (loaded from `.env` in current working directory)
|
||||
|
||||
2. **Service Clients**:
|
||||
- Databases, Users, Storage, Functions, Teams, Account, Health, Messaging, Locale, Avatars
|
||||
- All clients are initialized with API key authentication
|
||||
|
||||
3. **Tool Categories**:
|
||||
- Database operations (create, list, delete databases)
|
||||
- Collection management with attribute and index operations
|
||||
- Document CRUD with query support
|
||||
- User management including MFA, preferences, identities, and messaging targets
|
||||
- Storage bucket and file operations
|
||||
- Function management with deployments and variables
|
||||
- Messaging service (providers, messages, topics, subscribers)
|
||||
- Locale service for internationalization
|
||||
- Avatar generation utilities
|
||||
- Bulk operations for efficient batch processing
|
||||
- Advanced features like schema auto-detection and data analysis
|
||||
|
||||
### Configuration
|
||||
|
||||
The server reads configuration from environment variables:
|
||||
- `APPWRITE_PROJECT_ID`: Target Appwrite project
|
||||
- `APPWRITE_API_ENDPOINT`: Appwrite API endpoint (cloud or self-hosted)
|
||||
- `APPWRITE_API_KEY`: API key with necessary scopes
|
||||
|
||||
The `.env` file is loaded from the current working directory where Claude Code is run, allowing project-specific configurations.
|
||||
|
||||
### Tool Implementation Pattern
|
||||
|
||||
Tools follow a consistent pattern:
|
||||
1. Parse and validate input parameters
|
||||
2. Initialize appropriate Appwrite service client
|
||||
3. Execute the operation with error handling
|
||||
4. Return formatted response with relevant data
|
||||
|
||||
### Error Handling
|
||||
|
||||
All tools implement comprehensive error handling:
|
||||
- Configuration validation before operations
|
||||
- Detailed error messages for debugging
|
||||
- Graceful fallbacks for missing optional parameters
|
||||
|
||||
## Development Guidelines
|
||||
|
||||
1. **Adding New Tools**: Follow the existing pattern in `src/index.ts`, ensuring proper parameter validation and error handling.
|
||||
|
||||
2. **Type Safety**: Leverage TypeScript's strict mode for all new code. The project uses ES2022 target with Node16 module resolution.
|
||||
|
||||
3. **Environment Variables**: Never commit `.env` files. Use `.env.example` as a template for configuration.
|
||||
|
||||
4. **Build Output**: Compiled JavaScript goes to `dist/` directory. Source maps are generated for debugging.
|
||||
|
||||
## Integration Notes
|
||||
|
||||
This server can be integrated with:
|
||||
- Claude Code (CLI) via `claude mcp add` command
|
||||
- Cursor IDE via settings.json configuration
|
||||
- Continue.dev via config.json
|
||||
|
||||
Each integration method supports different configuration approaches, with Claude Code using `.env` files and IDEs requiring inline environment variable configuration.
|
||||
Reference in New Issue
Block a user