Skip to main content
Glama
sakimototwingarc-spec

iA Document Management MCP Server

README.md
# iA Document Management MCP Server

MCP (Model Context Protocol) server for interacting with WingArc's iA Document Management System.

## Features

This MCP server provides three main tools for interacting with iA Document Management:

1. **ia_login** - Authenticate with the iA Document Management System
2. **ia_search_documents** - Search for documents using free word search
3. **ia_logout** - Logout from the system

## Installation

```bash
npm install
npm run build
```

## Configuration

Set the base URL for your iA Document Management System:

```bash
export IA_BASE_URL="https://wat-cloud-div.spa-cloud.com"
```

Or provide it as a parameter when calling the tools.

## Usage with Claude Desktop

Add the following to your Claude Desktop configuration file:

**MacOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%/Claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "ia-document-management": {
      "command": "node",
      "args": [
        "/Users/sakiko/Applications/iA文書管理MCP/dist/index.js"
      ],
      "env": {
        "IA_BASE_URL": "https://wat-cloud-div.spa-cloud.com"
      }
    }
  }
}
```

## Tools

### ia_login

Authenticate with the iA Document Management System.

**Parameters:**
- `user` (required): Username
- `password` (required): Password
- `domain` (optional): Domain name (defaults to "local")
- `baseUrl` (optional): Base URL of the system

**Returns:**
- `sessionCookie`: Session cookie (JSESSIONID) to use for subsequent requests
- `xsrfCookie`: XSRF token cookie for CSRF protection
- `xsrfToken`: XSRF token value (also available in response header)
- `userId`: Authenticated user ID

### ia_search_documents

Search for documents using free word search.

**Parameters:**
- `searchWord` (optional): Free word search term
- `folderIds` (required): Array of folder IDs to search (format: `[{id: "123", federationId: "optional"}]`)
- `operator` (optional): "AND" or "OR" (defaults to "AND")
- `recursive` (optional): Include subfolders (defaults to true)
- `properties` (optional): System properties to retrieve (e.g., `["name", "createDate", "updateDate"]`)
- `sessionCookie` (required): Session cookie from ia_login
- `xsrfToken` (recommended): XSRF token from ia_login for CSRF protection
- `baseUrl` (optional): Base URL of the system

**Returns:**
- `results`: Array of matching documents
- `resultCount`: Number of documents found

### ia_logout

Logout from the iA Document Management System.

**Parameters:**
- `sessionCookie` (required): Session cookie from ia_login
- `xsrfToken` (required): XSRF token from ia_login for CSRF protection
- `baseUrl` (optional): Base URL of the system

**Returns:**
- `success`: Boolean indicating logout success
- `userId`: User ID that was logged out (when successful)

**Note:** Logout now works correctly with proper CSRF headers (`X-Requested-With` and `X-XSRF-TOKEN`).

## Example Workflow

1. **Login**:
```
Please login to iA Document Management with username "myuser" and password "mypassword"
```

2. **Search Documents**:
```
Search for documents containing "invoice" in folder ID "123"
```

3. **Logout**:
```
Please logout from the system
```

## Security Notes

### CSRF Protection

The iA Document Management System uses XSRF (Cross-Site Request Forgery) tokens for security:

- Login response includes an `X-Xsrf-Token` header and `XSRF-TOKEN` cookie
- Subsequent requests must include:
  - `X-Requested-With: XMLHttpRequest` header (required for all non-GET requests)
  - `X-XSRF-TOKEN` header with the token value
- The MCP server automatically handles these CSRF headers when xsrfToken is provided
- **Important**: Using an incorrect CSRF token will invalidate it, requiring a new login

### Session Management

- Sessions are maintained via `JSESSIONID` cookie
- Sessions automatically expire after a period of inactivity
- Logout works correctly when proper CSRF headers are included
- Always store session credentials securely and never commit them to version control

## API Documentation

- [Login API](https://cs.wingarc.com/manual/ia/cloud/ja/1027707.html)
- [Document Search API](https://cs.wingarc.com/manual/ia/cloud/ja/4261290.html)
- [Logout API](https://cs.wingarc.com/manual/ia/cloud/ja/1387624.html)
- [CSRF Token Implementation](https://cs.wingarc.com/manual/ia/cloud/ja/1567416.html)

## License

MIT