JohnRSim/webcenter-content-mcp-server
If you are the rightful owner of webcenter-content-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The WebCenter Content MCP Server is a Model Context Protocol server that provides access to Oracle WebCenter Content REST APIs, featuring both a desktop GUI and a standalone server.
search-documents
Search for documents in WebCenter Content.
get-document-metadata
Get metadata for a specific document.
download-document
Download a document from WebCenter Content.
update-document-metadata
Update metadata for a document.
checkout-document
Checkout a document for editing.
WebCenter Content MCP Server
A Model Context Protocol (MCP) server that provides access to Oracle WebCenter Content REST APIs. This application features both a desktop GUI (built with Electron) and a standalone MCP server following the electron-mcp pattern for clean separation of concerns.
Features
This MCP server provides comprehensive tools and resources for Oracle WebCenter Content, covering the complete REST API v1.1 specification:
- Document Management: Search, download, upload, update, delete documents and revisions
- Folder Operations: Create, delete folders, manage files within folders, create file links
- Metadata Operations: Get and update document metadata with versioning support
- Workflow Management: Create, update, approve, reject workflows; checkout/reverse checkout documents
- Public & Application Links: Create and manage public links and application links for files and folders
- Background Jobs: Start and monitor bulk operations (delete, download, category management)
- Taxonomies: Create, update, and manage taxonomies for document categorization
- System Operations: Query data sources, manage document types, get system configuration
- Attachments: Add, download, list, and delete document attachments
- Storage Management: Update storage tiers and restore documents from archive
- Capabilities: Test document and folder permissions and capabilities
- Conversion Management: Resubmit failed document conversions
Installation
-
Clone or download this repository
-
Install dependencies:
npm install
-
Configure environment variables by creating or updating the
.env
file:WCC_BASE_URL=https://your-webcenter-domain.com/documents/wcc/api/v1.1 WCC_USER=your-username WCC_PASSWORD=your-password MCP_PORT=3999
Usage
This application can be used in two ways:
1. Desktop GUI Application (Electron)
Launch the desktop application with a graphical interface:
# Production mode
npm run electron
# Development mode (with DevTools)
npm run electron-dev
The GUI allows you to:
- Configure connection settings
- Start/stop the MCP server
- Test connections
- Monitor server status
- View server logs
2. Standalone MCP Server (for Claude Desktop)
Run the MCP server directly for use with Claude Desktop or other MCP clients:
# Direct MCP server (stdio mode)
npm start
npm run mcp
# Development mode with file watching
npm run dev
# Using the standalone launcher
node mcp-server-standalone.js
Building for Distribution
# Build for current platform
npm run build:electron
# Build for Windows
npm run build:electron:win
# Build for macOS
npm run build:electron:mac
# Build for Linux
npm run build:electron:linux
MCP Tools
The server provides 56 comprehensive MCP tools covering all WebCenter Content operations.
š Complete Documentation: See for detailed documentation of all 56 MCP tools with parameters and examples.
Document Operations
- search-documents: Search for documents in WebCenter Content
- get-document-metadata: Get metadata for a specific document
- download-document: Download a document from WebCenter Content
- download-document-by-revision-id: Download document by specific revision ID
- update-document-metadata: Update metadata for a document (with versioning)
- update-document-by-revision-id: Update document by specific revision ID
- delete-document: Delete a document from WebCenter Content
- upload-document-revision: Upload a new revision of an existing document
- checkout-document: Checkout a document for editing
- reverse-checkout: Reverse checkout (undo checkout) of a document
- get-document-capabilities: Get capabilities/permissions for a document
- resubmit-conversion: Resubmit failed conversion for a document
- resubmit-conversion-by-revision-id: Resubmit failed conversion by revision ID
Storage Management
- update-storage-tier: Change storage tier for a document
- update-storage-tier-by-revision-id: Change storage tier by revision ID
- restore-from-archive: Restore document from archive
- restore-from-archive-by-revision-id: Restore document from archive by revision ID
Folder Operations
- create-folder: Create a new folder in WebCenter Content
- delete-folder: Delete a folder
- get-folder-info: Get information about a specific folder
- get-folder-file-info: Get file information within a folder
- delete-folder-file: Delete a file within a folder
- search-in-folder: Search for items within a specific folder
- create-file-link: Create a file link within a folder
- get-folder-capabilities: Test folder capabilities and permissions
Public Links Management
- create-public-link-for-file: Create public link for a file
- get-public-links-for-file: List public links for a file
- create-public-link-for-folder: Create public link for a folder
- get-public-links-for-folder: List public links for a folder
- get-public-link-info: Get information about a public link
Application Links Management
- create-application-link: Create application link for a folder
- get-application-links-for-folder: List application links for a folder
- get-application-link-info: Get application link information
- delete-application-link: Delete an application link
- refresh-application-link-token: Refresh application link access token
Background Jobs
- start-bulk-delete-job: Start bulk delete operation
- start-bulk-download-job: Start bulk download operation
- start-bulk-add-category-job: Start bulk add category operation
- start-bulk-remove-category-job: Start bulk remove category operation
- cancel-background-job: Cancel a background job
- get-background-job-status: Get status of a background job
- download-background-job-package: Download results of a background job
Taxonomies
- create-taxonomy: Create a new taxonomy
- get-taxonomy: Get taxonomy information
- update-taxonomy: Update a taxonomy
System Operations
- get-document-types: List all document types
- get-document-config-info: Get system configuration information
- get-document-meta-info: Get metadata fields information
- query-data-source: Query system data sources
Workflow Management
- create-workflow: Create a new workflow
- get-workflow: Get workflow information
- update-workflow: Update workflow settings
- approve-workflow: Approve workflow for a document
- reject-workflow: Reject workflow for a document
Attachment Operations
- add-attachment: Add attachment to a document
- get-attachments: List attachments for a document
- download-attachment: Download a document attachment
- delete-attachment: Delete a document attachment
MCP Resources
The server provides access to these resources:
- webcenter://documents: Recent documents and search results
- webcenter://folders: Folder structure and information
- webcenter://work-in-progress: Documents currently being worked on
Architecture
This application follows the electron-mcp pattern for optimal separation of concerns.
šļø Architecture Details: See for comprehensive architecture documentation.
Key Components
-
Electron Main Process (
electron/main.cjs
)- Desktop GUI host only
- Spawns MCP server as child process
- Handles configuration and server lifecycle
- No MCP protocol handling
-
MCP Server (
src/mcp-server.js
)- Pure MCP protocol server
- Dual-mode operation (stdio/HTTP)
- Full WebCenter Content API integration
- Maintains protocol compatibility
-
Standalone Launcher (
mcp-server-standalone.js
)- Direct MCP server access
- Proper stdio handling for MCP clients
- Used by Claude Desktop and other clients
Operation Modes
- GUI Mode: HTTP server on port 3999, spawned by Electron
- MCP Mode: stdio transport for direct client communication
- HTTP MCP Mode: HTTP server with MCP protocol endpoint at
/mcp
- Automatic Detection: Based on launch context and arguments
Configuration for MCP Clients
Claude Desktop
You can connect Claude Desktop to this server using two different approaches:
š Method 1: HTTP Server (Recommended for GUI users)
-
Launch the Electron GUI:
npm run electron-dev
-
Start the MCP server from the GUI interface
-
Add HTTP configuration to your Claude Desktop config (
claude_desktop_config.json
):{ "mcpServers": { "webcenter-content": { "type": "http", "url": "http://localhost:3999/mcp" } } }
-
Restart Claude Desktop to load the new configuration
š” Method 2: Standalone Server (Direct stdio)
Add this to your Claude Desktop configuration (claude_desktop_config.json
):
{
"mcpServers": {
"webcenter-content": {
"command": "node",
"args": ["C:\\path\\to\\webcenter-content-mcp-server\\mcp-server-standalone.js"],
"env": {
"WCC_BASE_URL": "https://your-webcenter-domain.com/documents/wcc/api/v1.1",
"WCC_USER": "your-username",
"WCC_PASSWORD": "your-password"
}
}
}
}
Alternative direct server configuration:
{
"mcpServers": {
"webcenter-content": {
"command": "node",
"args": ["C:\\path\\to\\webcenter-content-mcp-server\\src\\mcp-server.js"],
"env": {
"WCC_BASE_URL": "https://your-webcenter-domain.com/documents/wcc/api/v1.1",
"WCC_USER": "your-username",
"WCC_PASSWORD": "your-password"
}
}
}
}
API Coverage
This server provides complete coverage of the Oracle WebCenter Content REST API v1.1 specification, including all documented endpoints:
File Operations
POST /files/data
- Upload new documentsGET /files/{dDocName}/data
- Download document contentPOST /files/{dDocName}/data
- Upload document revisionGET /files/.by.did/{dID}/data
- Download by revision IDPUT /files/{dDocName}
- Update document metadataPUT /files/.by.did/{dID}
- Update by revision IDDELETE /files/{dDocName}
- Delete documentPOST /files/{dDocName}/resubmitConversion
- Resubmit failed conversionPOST /files/.by.did/{dID}/resubmitConversion
- Resubmit conversion by revision IDPOST /files/{dDocName}/storage/.updateStorageTier
- Update storage tierPOST /files/.by.did/{dID}/storage/.updateStorageTier
- Update storage tier by revision IDPOST /files/{dDocName}/storage/.restoreFromArchive
- Restore from archivePOST /files/.by.did/{dID}/storage/.restoreFromArchive
- Restore from archive by revision IDGET /files/workInProgress/items
- List work in progressPOST /files/{dDocName}/.checkout
- Checkout documentPOST /files/{dDocName}/.undocheckout
- Undo checkoutGET /files/{dDocName}/capabilities
- Get document capabilitiesGET /files/search/items
- Global document search
Folder Operations
POST /folders
- Create folder or shortcutGET /folders/{fFolderGUID}
- Get folder informationDELETE /folders/{fFolderGUID}
- Delete folderGET /folders/files/{fFileGUID}
- Get file info in folderDELETE /folders/files/{fFileGUID}
- Delete file in folderGET /folders/search/items
- Search within foldersPOST /folders/{fFolderGUID}/{dDocName}/filelinks
- Create file linkGET /folders/{fFolderGUID}/capabilities
- Test folder capabilities
Public Links
POST /publiclinks/.by.file/{fFileGUID}
- Create public link for fileGET /publiclinks/.by.file/{fFileGUID}
- List public links for filePOST /publiclinks/.by.folder/{fFolderGUID}
- Create public link for folderGET /publiclinks/.by.folder/{fFolderGUID}
- List public links for folderGET /publiclinks/{dLinkID}
- Get public link info
Application Links
POST /applinks/.by.folder/{fFolderGUID}
- Create application linkGET /applinks/.by.folder/{fFolderGUID}
- List application links for folderGET /applinks/{dAppLinkID}
- Get application link infoDELETE /applinks/{dAppLinkID}
- Delete application linkPOST /applinks/{dAppLinkID}/.refreshAccessToken
- Refresh access token
Background Jobs
POST /.bulk/.delete
- Start bulk delete jobPOST /.bulk/.download
- Start bulk download jobPOST /.bulk/categories/.add
- Start bulk add category jobPOST /.bulk/categories/.remove
- Start bulk remove category jobPOST /.bulk/{dJobID}/.cancel
- Cancel background jobGET /.bulk/{dJobID}
- Get background job statusGET /.bulk/{dJobID}/package
- Download background job package
Taxonomies
POST /taxonomies
- Create taxonomyGET /taxonomies/{dTaxonomyGUID}
- Get taxonomyPUT /taxonomies/{dTaxonomyGUID}
- Update taxonomy
System Operations
POST /system/docProfiles
- Create document profileGET /system/docProfiles/{dpName}
- Get document profilePUT /system/docProfiles/{dpName}
- Update document profileDELETE /system/docProfiles/{dpName}
- Delete document profileGET /system/{dataSource}/items
- Query data sourceGET /system/doctypes
- List document typesPOST /system/doctypes
- Create document typePUT /system/doctypes/{dDocType}
- Update document typeDELETE /system/doctypes/{dDocType}
- Delete document typeGET /system/docConfigInfo
- Get configuration infoGET /system/docMetaInfo
- Get metadata fields info
Workflow Operations
POST /workflow
- Create workflowGET /workflows/{dWfName}
- Get workflow informationPUT /workflows/{dWfName}
- Edit workflowPOST /files/{dDocName}/workflow/.approve
- Approve workflowPOST /files/{dDocName}/workflow/.reject
- Reject workflow
Attachment Operations
POST /files/{dDocName}/attachments/data
- Add attachmentGET /files/{dDocName}/attachments/
- List attachmentsGET /files/{dDocName}/attachments/{extRenditionName}/data
- Download attachmentDELETE /files/{dDocName}/attachments/{extRenditionName}
- Delete attachment
Error Handling
The server includes comprehensive error handling for:
- Authentication failures
- Network connectivity issues
- Invalid parameters
- WebCenter Content API errors
- File system operations
Security
- Uses HTTP Basic Authentication with WebCenter Content
- Sensitive credentials are managed through environment variables
- Input validation for all tool parameters
- Proper error messages without exposing sensitive information
- Clean separation prevents GUI/protocol interference
- No stdio contamination in desktop mode
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Benefits of This Architecture
ā
Protocol Compatibility: Full stdio MCP support for Claude Desktop
ā
HTTP MCP Support: Native HTTP MCP endpoint for web-based clients
ā
GUI Functionality: Electron desktop app with configuration UI
ā
Cross-platform: Works on Windows, Mac, Linux
ā
No stdio Contamination: Clean separation prevents GUI/protocol conflicts
ā
Flexible Deployment: Can be used as GUI app or CLI MCP server
ā
Robust Process Management: Proper child process handling and cleanup
ā
Status Monitoring: HTTP endpoints for server health and status
ā
Dual Transport: Supports both stdio and HTTP MCP transports
ā
Easy Integration: Simple HTTP endpoint for Claude Desktop connection
Troubleshooting
Common Issues
- Server exits immediately: Check environment variables and WebCenter Content connectivity
- GUI shows "Server not started": Verify port 3999 is available and check server logs
- Connection test fails: Validate WebCenter Content URL, username, and password
- MCP client can't connect: Ensure using the standalone launcher or direct server path
- Port 3999 in use: Stop other instances or change MCP_PORT in environment variables
- HTTP MCP not working: Verify server is running and accessible at
http://localhost:3999/mcp
- Claude Desktop not connecting: Check config syntax and restart Claude Desktop after changes
Debug Mode
Run with debug output:
# GUI mode
npm run electron-dev
# MCP server mode
npm run dev
Health Check
When running in GUI mode, check server health:
# Server health
curl http://localhost:3999/health
# Server status
curl http://localhost:3999/status
# MCP endpoint info
curl http://localhost:3999/mcp
# Test MCP protocol (initialize)
curl -X POST http://localhost:3999/mcp \
-H "Content-Type: application/json" \
-d '{"method":"initialize","params":{"protocolVersion":"2025-01-01","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}},"id":1}'
License
This project is dual-licensed:
š Open Source License (GPL v3)
- Free for open source projects
- Individual developers can use it freely
- Requires derivative works to be GPL-licensed
- Full license terms: GNU General Public License v3.0
š¼ Commercial License
- For proprietary commercial use
- Allows integration into closed-source products
- No copyleft requirements
- Suitable for SaaS products, internal tooling, and commercial platforms
Commercial Use:
If you are an enterprise, consultant, or plan to use this in proprietary/commercial software, please contact Fishbowl Solutions to obtain a commercial license.
š¤ Which License Do I Need?
- Use GPL v3 if you're building open source software
- Need Commercial License if you're:
- Building proprietary software
- Integrating into closed-source products
- Developing commercial SaaS applications
- Using in enterprise environments without open-sourcing your stack
See the file for complete details.