RemoteAgent
RemoteAgent MCP Server is a lightweight, containerized runtime designed to bridge Model Context Protocol (MCP) with modern AI platforms. It enables developers to connect large language models (LLMs) like OpenAI, Anthropic, and local models to external tools, APIs, and data sources through a secure, persistent session layer. With built-in RBAC, session isolation, and support for JSON tool-calling, Raworc MCP Server makes it simple to run deep, multi-agent workflows across frameworks such as LangChain, CrewAI, and AutoGen. By providing a standardized protocol interface, RemoteAgent MCP Server helps teams integrate, orchestrate, and scale AI agents with minimal DevOps effort β production-ready from day one.
Ask AI about RemoteAgent
Powered by Claude Β· Grounded in docs
I know everything about RemoteAgent. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Raworc MCP Server
A production-ready Model Context Protocol (MCP) server for Raworc, enabling AI assistants to seamlessly interact with Raworc's agent runtime platform.
π Quick Start
Option 1: Install via npx (Recommended)
# Test the installation
npx @raworc/mcp-server --help
# Use directly with Claude Desktop
npx @raworc/mcp-server
Option 2: Install from Source
# Clone the repository
git clone https://github.com/harshapalnati/raworc-mcpserver.git
cd raworc-mcpserver
# Build the project
cargo build --release
# Test the installation
./target/release/raworc-mcp --help
π Prerequisites
- Rust: Version 1.70 or higher
- Node.js: Version 16.0 or higher (for npx installation)
- Raworc Account: Access to Raworc platform
- Network Access: Ability to reach
api.remoteagent.com
π§ Configuration
Environment Variables
| Variable | Description | Default | Required |
|---|---|---|---|
RAWORC_API_URL | Raworc API base URL | https://api.remoteagent.com/api/v0 | No |
RAWORC_AUTH_TOKEN | JWT authentication token | - | Yes |
RAWORC_DEFAULT_SPACE | Default space for operations | - | No |
RAWORC_TIMEOUT | Request timeout in seconds | 30 | No |
LOG_LEVEL | Logging level | info | No |
Getting Your Authentication Token
curl -X POST https://api.remoteagent.com/api/v0/auth/login \
-H "Content-Type: application/json" \
-d '{
"user": "your-username",
"pass": "your-password"
}'
π― Features
- Complete API Coverage: Full access to all Raworc REST API endpoints
- Service Account Management: Create, update, and manage service accounts with role-based access
- Role-Based Access Control (RBAC): Manage roles and role bindings for fine-grained permissions
- Space Management: Create, update, and manage isolated workspaces
- Session Management: Create, pause, resume, terminate, and fork sessions
- Message Handling: Send, retrieve, and manage session messages
- Agent Operations: Deploy, monitor, control, and manage agents with full lifecycle support
- Secret Management: Secure storage and retrieval of secrets with proper access controls
- Build Management: Trigger and monitor space builds for agent deployment
- Real-time Communication: Send messages and receive responses from agents
- Health Monitoring: Check API health and version information
- Production Ready: Robust error handling, logging, and MCP protocol compliance
π Claude Desktop Integration
Add the MCP server to your Claude Desktop configuration:
{
"mcpServers": {
"raworc": {
"command": "npx",
"args": ["@raworc/mcp-server"],
"env": {
"RAWORC_API_URL": "https://api.remoteagent.com/api/v0",
"RAWORC_AUTH_TOKEN": "your-jwt-token",
"RAWORC_DEFAULT_SPACE": "your-space",
"RAWORC_TIMEOUT": "30",
"LOG_LEVEL": "info"
}
}
}
}
Alternative: Direct Binary Path
{
"mcpServers": {
"raworc": {
"command": "/path/to/raworc-mcp",
"env": {
"RAWORC_API_URL": "https://api.remoteagent.com/api/v0",
"RAWORC_AUTH_TOKEN": "your-jwt-token",
"RAWORC_DEFAULT_SPACE": "your-space"
}
}
}
}
π οΈ Available Tools
The MCP server provides comprehensive access to all Raworc API endpoints. Here are the available tools organized by category:
System Information
health_check
Check Raworc API health status.
{
"name": "health_check",
"arguments": {}
}
get_version
Get Raworc API version information.
{
"name": "get_version",
"arguments": {}
}
Service Account Management
list_service_accounts
List all service accounts.
{
"name": "list_service_accounts",
"arguments": {}
}
create_service_account
Create a new service account.
{
"name": "create_service_account",
"arguments": {
"user": "api-user",
"pass": "secure-password",
"space": "production",
"description": "API access user"
}
}
get_service_account
Get a specific service account by ID.
{
"name": "get_service_account",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
update_service_account
Update a service account.
{
"name": "update_service_account",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"space": "production",
"description": "Updated description",
"active": true
}
}
delete_service_account
Delete a service account.
{
"name": "delete_service_account",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
update_service_account_password
Update service account password.
{
"name": "update_service_account_password",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"current_password": "old-password",
"new_password": "new-secure-password"
}
}
Role Management
list_roles
List all RBAC roles.
{
"name": "list_roles",
"arguments": {}
}
create_role
Create a new role.
{
"name": "create_role",
"arguments": {
"id": "developer",
"description": "Developer role",
"rules": [
{
"apiGroups": [""],
"resources": ["sessions", "messages"],
"verbs": ["get", "list", "create"]
}
]
}
}
get_role
Get a specific role by ID.
{
"name": "get_role",
"arguments": {
"id": "developer"
}
}
delete_role
Delete a role.
{
"name": "delete_role",
"arguments": {
"id": "developer"
}
}
Role Binding Management
list_role_bindings
List all role bindings.
{
"name": "list_role_bindings",
"arguments": {}
}
create_role_binding
Create a new role binding.
{
"name": "create_role_binding",
"arguments": {
"subject": "api-user",
"role_ref": "developer",
"space": "staging"
}
}
get_role_binding
Get a specific role binding by ID.
{
"name": "get_role_binding",
"arguments": {
"id": "admin-binding"
}
}
delete_role_binding
Delete a role binding.
{
"name": "delete_role_binding",
"arguments": {
"id": "admin-binding"
}
}
Space Management
list_spaces
List all spaces.
{
"name": "list_spaces",
"arguments": {}
}
create_space
Create a new space.
{
"name": "create_space",
"arguments": {
"name": "staging",
"description": "Staging environment",
"settings": {
"environment": "staging"
}
}
}
get_space
Get a specific space by name.
{
"name": "get_space",
"arguments": {
"name": "staging"
}
}
update_space
Update a space.
{
"name": "update_space",
"arguments": {
"name": "staging",
"description": "Updated staging space"
}
}
delete_space
Delete a space.
{
"name": "delete_space",
"arguments": {
"name": "staging"
}
}
Session Management
list_sessions
List all sessions in a space.
{
"name": "list_sessions",
"arguments": {
"space": "production"
}
}
create_session
Create a new session.
{
"name": "create_session",
"arguments": {
"space": "development",
"metadata": {
"purpose": "testing",
"user": "developer"
}
}
}
get_session
Get session details by ID.
{
"name": "get_session",
"arguments": {
"session_id": "61549530-3095-4cbf-b379-cd32416f626d",
"space": "production"
}
}
update_session
Update session details.
{
"name": "update_session",
"arguments": {
"session_id": "61549530-3095-4cbf-b379-cd32416f626d",
"space": "production"
}
}
update_session_state
Update session state.
{
"name": "update_session_state",
"arguments": {
"session_id": "61549530-3095-4cbf-b379-cd32416f626d",
"state": "closed"
}
}
close_session
Close a session.
{
"name": "close_session",
"arguments": {
"session_id": "61549530-3095-4cbf-b379-cd32416f626d"
}
}
restore_session
Restore a closed session.
{
"name": "restore_session",
"arguments": {
"session_id": "61549530-3095-4cbf-b379-cd32416f626d"
}
}
remix_session
Fork a session.
{
"name": "remix_session",
"arguments": {
"session_id": "61549530-3095-4cbf-b379-cd32416f626d",
"space": "development"
}
}
pause_session
Pause a session.
{
"name": "pause_session",
"arguments": {
"session_id": "61549530-3095-4cbf-b379-cd32416f626d",
"space": "production"
}
}
resume_session
Resume a paused session.
{
"name": "resume_session",
"arguments": {
"session_id": "61549530-3095-4cbf-b379-cd32416f626d",
"space": "production"
}
}
terminate_session
Terminate a session.
{
"name": "terminate_session",
"arguments": {
"session_id": "61549530-3095-4cbf-b379-cd32416f626d",
"space": "production"
}
}
Session Message Management
get_messages
Get messages from a session.
{
"name": "get_messages",
"arguments": {
"session_id": "61549530-3095-4cbf-b379-cd32416f626d",
"space": "production",
"limit": 10
}
}
send_message
Send a message to a session.
{
"name": "send_message",
"arguments": {
"session_id": "61549530-3095-4cbf-b379-cd32416f626d",
"space": "production",
"content": "Generate a Python script to calculate fibonacci numbers"
}
}
get_message_count
Get message count for a session.
{
"name": "get_message_count",
"arguments": {
"session_id": "61549530-3095-4cbf-b379-cd32416f626d",
"space": "production"
}
}
clear_messages
Clear all messages from a session.
{
"name": "clear_messages",
"arguments": {
"session_id": "61549530-3095-4cbf-b379-cd32416f626d",
"space": "production"
}
}
Agent Management
list_agents
List agents in a space.
{
"name": "list_agents",
"arguments": {
"space": "production"
}
}
create_agent
Create a new agent.
{
"name": "create_agent",
"arguments": {
"space": "production",
"name": "data-analyzer",
"description": "Data analysis specialist",
"purpose": "analyze data, create visualizations, statistical analysis",
"source_repo": "Raworc/raworc-agent-python-demo",
"source_branch": "main"
}
}
get_agent
Get a specific agent.
{
"name": "get_agent",
"arguments": {
"space": "production",
"agent_name": "data-analyzer"
}
}
update_agent
Update an agent.
{
"name": "update_agent",
"arguments": {
"space": "production",
"agent_name": "data-analyzer",
"description": "Updated data analysis specialist",
"purpose": "enhanced data analysis and visualization"
}
}
delete_agent
Delete an agent.
{
"name": "delete_agent",
"arguments": {
"space": "production",
"agent_name": "data-analyzer"
}
}
update_agent_status
Update agent status.
{
"name": "update_agent_status",
"arguments": {
"space": "production",
"agent_name": "data-analyzer",
"status": "inactive"
}
}
deploy_agent
Deploy an agent.
{
"name": "deploy_agent",
"arguments": {
"space": "production",
"agent_name": "data-analyzer"
}
}
stop_agent
Stop an agent.
{
"name": "stop_agent",
"arguments": {
"space": "production",
"agent_name": "data-analyzer"
}
}
list_running_agents
List running agents in a space.
{
"name": "list_running_agents",
"arguments": {
"space": "production"
}
}
get_agent_logs
Get logs for a specific agent.
{
"name": "get_agent_logs",
"arguments": {
"space": "production",
"agent_name": "data-analyzer",
"limit": 100,
"follow": false
}
}
Secret Management
list_secrets
List secrets in a space.
{
"name": "list_secrets",
"arguments": {
"space": "production",
"show_values": false
}
}
create_secret
Create a new secret.
{
"name": "create_secret",
"arguments": {
"space": "production",
"key_name": "ANTHROPIC_API_KEY",
"value": "sk-ant-your-actual-key",
"description": "Claude API key"
}
}
get_secret
Get a specific secret.
{
"name": "get_secret",
"arguments": {
"space": "production",
"key": "ANTHROPIC_API_KEY",
"show_values": true
}
}
update_secret
Update a secret.
{
"name": "update_secret",
"arguments": {
"space": "production",
"key": "ANTHROPIC_API_KEY",
"value": "new-secret-value",
"description": "Updated description"
}
}
delete_secret
Delete a secret.
{
"name": "delete_secret",
"arguments": {
"space": "production",
"key": "ANTHROPIC_API_KEY"
}
}
Build Management
create_build
Trigger a space build.
{
"name": "create_build",
"arguments": {
"space": "production",
"dockerfile": "Dockerfile"
}
}
get_latest_build
Get latest build status.
{
"name": "get_latest_build",
"arguments": {
"space": "production"
}
}
get_build
Get specific build status.
{
"name": "get_build",
"arguments": {
"space": "production",
"build_id": "build-550e8400-e29b-41d4-a716-446655440000"
}
}
π§ͺ Testing
Quick Test
# Test with npx
npx @raworc/mcp-server --help
# Test health check
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "health_check", "arguments": {}}}' | npx @raworc/mcp-server
# Test list spaces
echo '{"jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "list_spaces", "arguments": {}}}' | npx @raworc/mcp-server
Manual API Testing
# Health check
curl -H "Authorization: Bearer your-token" https://api.remoteagent.com/api/v0/health
# Get version
curl -H "Authorization: Bearer your-token" https://api.remoteagent.com/api/v0/version
# List spaces
curl -H "Authorization: Bearer your-token" https://api.remoteagent.com/api/v0/spaces
ποΈ Development
Building from Source
# Clone the repository
git clone https://github.com/harshapalnati/raworc-mcpserver.git
cd raworc-mcpserver
# Build the project
cargo build --release
# Run tests
cargo test
# Install with npm (for npx distribution)
npm install
Project Structure
raworc-mcpserver/
βββ src/
β βββ main.rs # Entry point
β βββ lib.rs # Library exports
β βββ client.rs # Raworc API client
β βββ error.rs # Error handling
β βββ models.rs # Data models
β βββ mcp.rs # MCP server implementation
βββ bin/
β βββ raworc-mcp.js # JavaScript wrapper for npx
βββ scripts/
β βββ postinstall.js # Build script for npm installation
βββ tests/
β βββ integration_test.rs # Integration tests
βββ examples/
β βββ claude-desktop-config.json # Example Claude Desktop config
β βββ usage-example.md # Usage examples
βββ Cargo.toml # Rust dependencies
βββ package.json # npm package configuration
βββ QUICKSTART.md # Quick start guide
βββ TESTING.md # Testing guide
βββ README.md # This file
π Troubleshooting
Common Issues
-
Authentication Failed
- Verify your token is valid and not expired
- Check that you have the correct permissions
-
Connection Issues
- Verify you can reach
api.remoteagent.com - Check your network connectivity
- Verify you can reach
-
Permission Errors
- Ensure your account has the necessary permissions
- Check that you're using the correct space
Debug Mode
export LOG_LEVEL="debug"
export RAWORC_API_URL="https://api.remoteagent.com/api/v0"
export RAWORC_AUTH_TOKEN="your-token"
npx @raworc/mcp-server
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π€ Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
π Support
- Documentation: Raworc API Documentation
- RemoteAgent REST (v0): ra-hyp-1 endpoints and examples
- Production Guide: Deploy and operate in production
- Issues: GitHub Issues
- Discussions: GitHub Discussions
π Changelog
v0.2.0
- Complete API Coverage: Added all Raworc REST API endpoints
- Service Account Management: Full CRUD operations for service accounts
- Role-Based Access Control: Complete RBAC implementation with roles and role bindings
- Enhanced Session Management: Added session forking, state management, and message operations
- Advanced Agent Operations: Full agent lifecycle management with deployment and monitoring
- Comprehensive Secret Management: Enhanced secret operations with proper access controls
- Build Management: Space build triggering and monitoring capabilities
- Production Enhancements: Improved error handling, logging, and MCP protocol compliance
v0.1.0
- Initial release
- Basic MCP protocol implementation
- Core Raworc API integration
- Session, space, agent, and secret management
- Health monitoring and version information
- npx installation support
- Production-ready error handling
π Links
- Repository: https://github.com/harshapalnati/raworc-mcpserver
- npm Package: @raworc/mcp-server
- Raworc API: https://raworc.com/docs/api/rest-api
