# Xano MCP Server

A Model Context Protocol (MCP) server for interacting with Xano's metadata API. This server provides tools that can be used by AI assistants (like Claude) through Cursor or other MCP-compatible clients.

## Features

- **Manage Tables**: Create, list, and delete tables in your Xano database
- **Schema Operations**: View and modify table schemas with comprehensive schema editing capabilities
- **Database Management**: Complete toolset for interacting with your Xano database structure
- **Swagger Spec**: Extract your API group api details in either JSON or Markdown (reduced token) format

Note this is an early-stage with feedback / requests welcomed.

## Prerequisites

- Node.js (v16 or higher)
- npm or another Node.js package manager
- A Xano account with API access
- Cursor, Claude Desktop, Cline or another MCP client.

## Installation

1. Clone the repository:
```bash
git clone https://github.com/lowcodelocky2/xano-mcp.git
cd xano-mcp
```

2. Install dependencies:
```bash
npm install
```

3. Configure your Xano credentials:
   - Edit `index.ts` and set your Xano credentials:
     - `XANO_API_KEY`: Your Xano API key
     - `XANO_WORKSPACE`: Your Xano workspace ID
     - `XANO_API_BASE`: Your Xano instance API URL (e.g., https://your-instance.xano.io/api:meta)

4. Build the project:
```bash
npm run build
```

## Usage with Claude Desktop

Follow this guide - https://modelcontextprotocol.io/quickstart/user

Update your config with: 
```json
{
  "mcpServers": {
    "xano": {
      "command": "node",
      "args": [
        "/path/to/xano-mcp"
      ]
    }
  }
} 
```

Replace `/path/to/xano-mcp` with the absolute path to your project directory.

**This does not work with the claude web app, only via the desktop app - https://claude.ai/download**

## Usage with Cursor

1. Open Cursor
2. Click "Add MCP Server"
3. Configure the server:
   - Name: `whatever you want to call it`
   - Type: `command`
   - Command: `node /path/to/xano-mcp/build/index.js`

Replace `/path/to/xano-mcp` with the absolute path to your project directory.

Example mac  
node /Users/your-user/Documents/folder-name/xano-mcp/build/index.js

If you're in your're inside your directory you can run the comman 'pwd' into your terminal to get the absolute path.

## Xano MCP Tools Overview

This integration provides a comprehensive set of tools for managing your Xano workspace through the Model Context Protocol (MCP). Here's what you can do:

## Database Management

### Tables
- List all tables in your workspace
- View detailed table schemas
- Create new tables with custom schemas
- Delete existing tables
- Modify table schemas (add/remove/rename columns)

### Schema Operations
- Add new columns with various data types
- Remove columns
- Rename columns
- Update entire table schemas
- Support for complex data types and relationships

## API Management

### API Groups
- Create new API groups
- List all API groups
- Browse APIs within groups
- Enable/disable Swagger documentation
- Manage API group metadata (tags, branches, etc.)

### Individual APIs
- Add new APIs to groups
- Configure HTTP methods (GET, POST, PUT, DELETE, PATCH, HEAD)
- Set up API documentation
- Add metadata (tags, descriptions)

## Documentation
- Generate API Group specifications in both markdown (reduced tokens) and JSO (full) formats
- View Swagger documentation
- Access detailed schema information

This toolset enables complete management of your Xano workspace, allowing you to build and maintain your backend infrastructure programmatically through the MCP interface. 

## Re-enabling the Delete Table Tool

To re-enable the delete-table functionality in this codebase, follow these step-by-step instructions:

1. Open the file `src/index.ts` in your code editor
2. Locate the commented-out section that starts with:
   ```typescript
   // Delete Table Tool
   /*
   server.tool(
   ```
   and ends with:
   ```typescript
   );
   */
   ```

3. To uncomment this section:
   - Delete the opening `/*` on the line after "Delete Table Tool"
   - Delete the closing `*/` before "Edit Table Schema Tool"
   
   That's it! The delete-table tool will now be active again.   (After running a new build)

### Example of What the Code Should Look Like After

```typescript
// Delete Table Tool
server.tool(
  "delete-table",
  "Delete a table from the Xano workspace",
  {
    table_id: z.string().describe("ID of the table to delete")
  },
  async ({ table_id }) => {
    // ... rest of the implementation
  }
);
```

### Verification
After making these changes:
1. Save the file
2. Run a new build `npm run build'
3. Restart your MCP client (Claude / Cursor)
4. The delete-table tool should now be available in your toolset

### Safety Note
The delete-table tool permanently removes tables from your Xano workspace. Make sure you have appropriate backups before using this functionality. 
