ResourceSpace MCP Server

ResourceSpace MCP Server

Provides comprehensive access to the ResourceSpace Digital Asset Management API through MCP tools, resources, and workflow prompts, enabling asset management, search, collections, metadata, and administrative operations.

Category
访问服务器

README

ResourceSpace MCP Server

A comprehensive Model Context Protocol (MCP) server that provides full access to the ResourceSpace Digital Asset Management (DAM) API. This server exposes 100+ ResourceSpace API endpoints as MCP tools, along with browsable resources and workflow prompts.

🎯 Multi-Server Architecture

For optimal performance, the ResourceSpace MCP is split into 4 modular servers:

  • Main Server (44 tools) - Core DAM operations
  • Admin Server (18 tools) - User & system management
  • IIIF Server (5 tools) - IIIF image protocol
  • Consent Manager Server (8 tools) - Consent management plugin

Total: 75 tools (all servers under the recommended 80-tool limit for Cursor IDE)

👉 See MULTI_SERVER_GUIDE.md for complete setup instructions

Features

  • 75 MCP Tools: Consolidated, efficient coverage of ResourceSpace API

    • Main Server (44 tools): Resources (8), Search (7), Collections (8), Metadata (12), Batch (9)
    • Admin Server (18 tools): Users (8), System Operations (10)
    • IIIF Server (5 tools): IIIF protocol support
    • Consent Server (8 tools): Consent management
    • CRUD operations consolidated using action parameters for optimal performance
  • MCP Resources: Browsable URI-based access to assets and collections

    • resource://assets/{id} - Asset details
    • resource://assets/search?query={q} - Search results
    • resource://collections/{id} - Collection contents
    • And more...
  • MCP Prompts: Workflow templates for common tasks

    • Asset Upload Workflow
    • Search & Filter Workflow
    • Collection Management
    • Metadata Enrichment
    • User Onboarding
    • System Health Check

Installation from GitHub

Prerequisites

  • Node.js 18+ and npm
  • A ResourceSpace instance with API access
  • ResourceSpace API credentials (user and API key)

Quick Install

# Clone the repository
git clone https://github.com/Magnolia-Tech-Services-LLC/ressourcespaceMCP.git
cd ressourcespaceMCP

# Install dependencies and build (auto-builds via postinstall)
npm install

# Install globally to make commands available everywhere
npm link

That's it! The servers are now available as global commands.

Available Commands

After installation, you have access to 4 MCP servers:

  • resourcespace-mcp-server - Main Server (44 tools) - Core DAM operations
  • resourcespace-admin-mcp - Admin Server (18 tools) - User & system management
  • resourcespace-iiif-mcp - IIIF Server (5 tools) - IIIF image protocol
  • resourcespace-consent-mcp - Consent Manager (8 tools) - Consent plugin

Configuration

Cursor IDE Configuration

Add to your Cursor MCP config file (~/.cursor/mcp.json or .cursor/mcp.json in your project):

{
  "mcpServers": {
    "resourcespace": {
      "command": "resourcespace-mcp-server",
      "env": {
        "RESOURCESPACE_URL": "https://your-instance.com",
        "RESOURCESPACE_USER": "your-email@example.com",
        "RESOURCESPACE_API_KEY": "your-api-key-here"
      }
    },
    "resourcespace-admin": {
      "command": "resourcespace-admin-mcp",
      "env": {
        "RESOURCESPACE_URL": "https://your-instance.com",
        "RESOURCESPACE_USER": "your-email@example.com",
        "RESOURCESPACE_API_KEY": "your-api-key-here"
      }
    }
  }
}

Claude Desktop Configuration

Add to your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "resourcespace": {
      "command": "resourcespace-mcp-server",
      "env": {
        "RESOURCESPACE_URL": "https://your-instance.com",
        "RESOURCESPACE_USER": "your-email@example.com",
        "RESOURCESPACE_API_KEY": "your-api-key-here"
      }
    }
  }
}

Note: You can enable any combination of the 4 servers. Most users only need the main server.

Getting Your API Key

  1. Log into your ResourceSpace instance
  2. Go to User PreferencesAPI Keys
  3. Generate a new API key
  4. Copy the key and use it in your configuration

See MULTI_SERVER_GUIDE.md for detailed setup instructions and use cases for each server.

API Coverage

Resource Management Tools

Tool Description
get_resource_data Get comprehensive data for a resource
get_resource_field_data Get specific field data
get_resource_path Get file path/URL for a resource
create_resource Create a new resource
update_field Update metadata field value
delete_resource Delete a resource
get_resource_types Get all resource types
get_alternative_files Get alternative files for a resource
add_alternative_file Add alternative file
delete_alternative_file Remove alternative file
get_resource_access Get access level
upload_file Upload file to resource
copy_resource Duplicate a resource
get_resource_type_fields Get fields for resource type
revert_resource_to_alternative Replace with alternative file
get_related_resources Get related resources
add_resource_nodes Add keywords/categories
delete_resource_nodes Remove keywords/categories
get_resource_log Get activity log
resource_download Log download event

Search & Discovery Tools

Tool Description
do_search Perform resource search
get_search_results Get search results with options
search_get_previews Get preview information
get_recent_resources Get recently added resources
search_public_collections Search public collections
get_search_filter_nodes Get available filters
get_resource_collections Get collections for resource
get_themes Get search themes
search_advanced Advanced field-specific search
get_facets Get faceted search options
get_keywords Get keyword suggestions
get_smart_themes Get smart theme collections
get_featured_collections Get featured collections

Collections Management Tools

Tool Description
get_collections Get all collections
get_collection Get collection details
get_collection_resources Get resources in collection
create_collection Create new collection
delete_collection Delete collection
add_resource_to_collection Add resource to collection
remove_resource_from_collection Remove resource from collection
update_collection Update collection properties
get_public_collections Get public collections
share_collection Share via email
get_collection_external_access Get external access keys
create_collection_external_access Create external access
delete_collection_external_access Delete external access
collection_email Email collection details
get_collection_log Get activity log
copy_collection Duplicate collection
add_collection_smart_search Convert to smart collection
get_theme_category_collections Get theme category collections
order_collection_resources Set custom order

Metadata & Fields Tools

Tool Description
get_resource_type_fields Get metadata fields
get_resource_field_data Get field data
update_field Update field value
copy_field Copy field between resources
get_field_data Get field information
create_resource_field Create new field
update_resource_field Update field configuration
delete_resource_field Delete field
get_nodes Get field nodes/options
get_node Get node details
create_node Create dropdown option
update_node Update node value
delete_node Delete node
get_resource_nodes Get resource's nodes
add_resource_nodes Add nodes to resource
delete_resource_nodes Remove nodes
get_field_options Get dropdown options
copy_resource_metadata Copy all metadata
get_exif_data Get EXIF metadata
extract_exif_comment Parse EXIF comments
update_resource_type Change resource type
get_field_values Get distinct field values
validate_field_value Validate field value

User Management Tools

Tool Description
get_users Get all users
get_user Get user details
create_user Create new user
update_user Update user account
delete_user Delete user
get_usergroups Get user groups
get_usergroup Get group details
create_usergroup Create user group
update_usergroup Update user group
delete_usergroup Delete user group
get_user_preferences Get user preferences
save_user_preferences Save preferences
get_user_activity Get activity log
get_user_collections Get user's collections
approve_user Approve pending user

System Operations Tools

Tool Description
get_system_info Get system information
get_config_options Get configuration options
set_config_option Set configuration
get_plugins Get installed plugins
get_plugin_config Get plugin configuration
set_plugin_config Set plugin configuration
get_job_queue Get job queue status
clear_job_queue Clear job queue
get_resource_stats Get resource statistics
get_system_status Get system health
clear_cache Clear system cache
reindex_resources Reindex metadata
get_activity_log Get system activity log

Batch Operations Tools

Tool Description
batch_update_field Update field for multiple resources
batch_add_to_collection Add multiple resources to collection
batch_remove_from_collection Remove multiple from collection
batch_delete_resources Delete multiple resources
batch_update_archive_status Update archive status
batch_copy_field Copy field to multiple resources
batch_add_nodes Add nodes to multiple resources
batch_delete_nodes Remove nodes from multiple
batch_download_resources Prepare batch download
batch_email_resources Email multiple resources

Example Usage

Searching for Assets

// Using the do_search tool
{
  "search": "landscape mountains",
  "restypes": "1,2",
  "archive": 0,
  "per_page": 20,
  "order_by": "relevance"
}

Creating and Populating a Collection

// 1. Create collection
{
  "name": "Marketing Campaign 2024",
  "public": false,
  "allow_changes": true
}

// 2. Add resources
{
  "resource_ids": [101, 102, 103],
  "collection_id": 42
}

Batch Updating Metadata

// Update copyright field for multiple resources
{
  "resource_ids": [101, 102, 103, 104],
  "field_id": 5,
  "value": "© 2024 Company Name"
}

Authentication

ResourceSpace uses MD5 signature authentication. The server automatically:

  1. Constructs query string with user and parameters
  2. Generates MD5 hash: md5(API_KEY + query_string)
  3. Appends signature to request

Example authentication flow:

Query: user=admin&function=get_resource_data&param1=123
Sign: md5(YOUR_API_KEY + query_string)
URL: /api/?user=admin&function=get_resource_data&param1=123&sign=abc123...

Error Handling

The server includes comprehensive error handling:

  • Network errors: Automatic retry with exponential backoff
  • API errors: Structured error responses with details
  • Validation errors: Zod schema validation for all inputs
  • Timeout handling: Configurable request timeouts

Configuration Options

All configuration via environment variables:

Variable Required Default Description
RESOURCESPACE_URL Yes - Your ResourceSpace instance URL
RESOURCESPACE_USER Yes - API username
RESOURCESPACE_API_KEY Yes - API key/private key
LOG_LEVEL No info Logging level (debug/info/warn/error)
REQUEST_TIMEOUT No 30000 Request timeout in ms
MAX_RETRIES No 3 Max retry attempts
RETRY_DELAY No 1000 Delay between retries in ms

Development

Project Structure

ressourcespaceMCP/
├── src/
│   ├── index.ts                 # Main MCP server
│   ├── config.ts                # Configuration management
│   ├── client/
│   │   └── resourcespace.ts     # API client
│   ├── tools/                   # MCP tools
│   │   ├── resources.ts
│   │   ├── search.ts
│   │   ├── collections.ts
│   │   ├── metadata.ts
│   │   ├── users.ts
│   │   ├── system.ts
│   │   └── batch.ts
│   ├── resources/               # MCP resources
│   │   ├── asset-browser.ts
│   │   └── collection-browser.ts
│   ├── prompts/                 # MCP prompts
│   │   └── templates.ts
│   └── types/
│       └── resourcespace.ts     # TypeScript types
├── package.json
├── tsconfig.json
└── README.md

Building

npm run build

Running in Development

npm run dev

Troubleshooting

Connection Issues

  1. Verify credentials: Check URL, username, and API key in .env
  2. Test API directly: Use ResourceSpace's built-in API test tool
  3. Check network: Ensure server can reach ResourceSpace instance
  4. Review logs: Check console output for detailed error messages

API Errors

  • "Invalid signature": API key is incorrect
  • "Function not found": ResourceSpace version may not support that endpoint
  • "Permission denied": User lacks required permissions
  • Timeout errors: Increase REQUEST_TIMEOUT value

ResourceSpace API Documentation

For detailed information about specific API endpoints, refer to the official ResourceSpace API documentation: https://www.resourcespace.com/knowledge-base/api/

License

MIT

Contributing

Contributions welcome! Please open issues or pull requests on the GitHub repository.

Support

For issues with this MCP server, please open an issue on GitHub.

For ResourceSpace API questions, consult the official ResourceSpace documentation.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选