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.
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
-
Env settings WebServer 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
3.2 Claude desktop Configure configuration by updating the following file: For mac:
open ~/Library/Application\ Support/Claude/claude_desktop_config.json
It should look something like this
{
"mcpServers": {
"webcenter-content-stdio": {
"command": "node",
"args": [
"/pathToRepository/mcp-server-standalone.js"
],
"env": {
"WCC_BASE_URL": "https://wccDomain.cec.ocp.oc-test.com/documents/wcc/api/v1.1",
"WCC_USER": "jsmith",
"WCC_PASSWORD": "MyPassword"
}
}
}
}
Note: if you are using a mac and are using the download tool make sure to give claude full access or let claude know where to put the file. System Settings >> Privacy and Security >> Full disk access Otherwise it will only have access to documents folder and is not aware of this access restriction or where it can put files.
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.