Metadata-Version: 2.4
Name: mcp-server-lark-doc
Version: 0.0.1
Summary: A Model Context Protocol server for accessing Lark documents
Author: T0UGH
License: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.11
Requires-Dist: aiohttp>=3.9.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: lark-oapi>=1.0.0
Requires-Dist: mcp[cli]>=1.3.0
Description-Content-Type: text/markdown

# MCP Server Doc

A Model Context Protocol server for searching and accessing Lark documents.

## Features

### Document Content Access
- Supports both Lark Doc and Wiki document types
- Automatically handles document type detection and ID extraction
- Returns raw content in text format for LLM processing

### Authentication
- OAuth-based user authentication
- Automatic token refresh and expiration management
- Customizable OAuth callback server

### Error Handling
- Comprehensive error reporting for authentication issues
- Clear feedback for invalid document URLs
- Detailed error messages for troubleshooting

## Installation

```bash
uvx mcp-server-doc
```

## Configuration

### Get your Lark App ID and App Secret

Visit the Lark Open Platform: https://open.larkoffice.com/app

### Make Sure your Lark App has Permissions below
```
wiki:wiki:readonly
wiki:node:read
docx:document:readonly
search:docs:read
```

### Environment Variables

Before using this MCP server, you need to set up your Lark application credentials:

1. Create a Lark application in Lark Open Platform
2. Get your App ID and App Secret
3. Configure environment variables:

```bash
export LARK_APP_ID="your_app_id"
export LARK_APP_SECRET="your_app_secret"
 ```

## Usage

Configure in Claude desktop:

```json
"mcpServers": {
    "lark_doc": {
        "command": "uvx",
        "args": ["mcp-server-doc"],
        "env": {
            "LARK_APP_ID": "your app id",
            "LARK_APP_SECRET": "your app secret",
        }
    }
}
```

### Available Tools

1. get_lark_doc_content
   - Purpose: Retrieve document content from Lark
   - Args: documentUrl (string) - The URL of the Lark document
   - Returns: Document content in text format
   - Supports:
     - Doc URLs: https://xxx.larksuite.com/docx/xxxxx
     - Wiki URLs: https://xxx.larksuite.com/wiki/xxxxx


## Error Messages

Common error messages and their solutions:

- "Lark client not properly initialized": Check your LARK_APP_ID and LARK_APP_SECRET
- "Invalid Lark document URL format": Verify the document URL format
- "Failed to get document content": Check document permissions and token validity
- "Failed to get app access token": Check your application credentials and network connection
- "Failed to get wiki document real ID": Check if the wiki document exists and you have proper permissions
- "Document content is empty": The document might be empty or you might not have access to its content
- "Authorization timeout": ser didn't complete authorization within 5 minutes


## License

MIT License
