julioisaias/outsystems-mcp-server
If you are the rightful owner of outsystems-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 dayong@mcphub.com.
The OutSystems MCP Server is a tool that enables AI assistants to query deployment information from OutSystems LifeTime using web scraping.
OutSystems MCP Server
An MCP (Model Context Protocol) server that enables AI assistants to query deployment information from OutSystems LifeTime.
Important: Web Scraping Approach
This server uses web scraping, NOT the OutSystems API. This design choice makes it accessible to developers who:
- Don't have API access enabled in their OutSystems environment
- Need to query LifeTime without administrator permissions
- Want to monitor deployments without requiring API configuration
The server authenticates using standard LifeTime credentials and extracts data directly from the web interface using Playwright.
Overview
OutSystemsMcpServer provides a bridge between AI assistants and OutSystems LifeTime, allowing you to:
- Query deployment status and history
- Monitor applications in deployment
- Get deployment statistics
- Track pending deployments
The server uses web scraping to extract data from the OutSystems LifeTime interface and caches it in a local SQLite database.
Features
- Real-time Deployment Monitoring: Track deployments as they progress through environments
- Historical Data: Query past deployments and their outcomes
- Caching: SQLite database reduces load on OutSystems servers
- MCP Protocol: Compatible with any MCP-enabled AI assistant
- Structured Logging: Comprehensive logs for debugging and monitoring
Prerequisites
- .NET 9.0 SDK
- OutSystems LifeTime access credentials (regular user account - no API access required)
- Chrome browser (for Playwright web scraping)
Installation
- Clone the repository:
git clone https://github.com/julioisaias/outsystems-mcp-server.git
cd outsystems-mcp-server
- Restore dependencies:
dotnet restore
- Install Playwright browsers:
dotnet run -- install chromium
- Configure your settings:
cp appsettings.Example.json appsettings.json
- Edit
appsettings.jsonwith your OutSystems credentials:
{
"OutSystemsSettings": {
"LoginUrl": "https://your-outsystems-url/lifetime",
"StagingListUrl": "https://your-outsystems-url/lifetime/Stagings_List.aspx",
"Username": "your-username",
"Password": "your-password"
}
}
Usage
Running the Server
Start the MCP server:
dotnet run
Or use the provided batch file:
start-server.bat
Connecting to AI Assistants
Claude Desktop
Add to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"outsystems": {
"command": "dotnet",
"args": ["run", "--project", "C:/path/to/outsystems-mcp-server"],
"env": {}
}
}
}
Other MCP Clients
The server communicates via stdio and is compatible with any MCP client implementation.
Available Tools
get_deployment_status
Query current deployment status across environments.
Parameters:
applicationName(optional): Filter by application nameenvironment(optional): Filter by target environment
get_deployment_history
Retrieve historical deployment data.
Parameters:
applicationName(optional): Filter by application namedays(optional): Number of days to look back (default: 7)
get_pending_deployments
List all deployments currently in progress or waiting.
get_deployment_statistics
Get aggregated statistics about deployments.
Parameters:
days(optional): Number of days to analyze (default: 30)
Architecture
OutSystemsMcpServer/
├── Data/ # Entity Framework context
├── Models/ # Data models
├── Services/ # Core services
│ ├── DatabaseService.cs # SQLite operations
│ └── ScrapingService.cs # Web scraping logic
├── Tools/ # MCP tool implementations
└── Program.cs # Application entry point
Key Components
- MCP Server: Uses ModelContextProtocol package for tool exposure
- Web Scraping: Microsoft.Playwright for reliable data extraction
- Data Storage: SQLite via Entity Framework Core
- Logging: Serilog for structured logging
Development
Building
dotnet build
Running in Debug Mode
dotnet run --configuration Debug
Adding New Tools
- Create a new class in the
Tools/directory - Decorate the class with
[McpServerToolType] - Add methods decorated with
[McpServerTool]and[Description] - Register the class in
Program.cs
Example:
[McpServerToolType]
public class MyNewTools
{
[McpServerTool]
[Description("Description of what this tool does")]
public async Task<object> my_new_tool(string parameter)
{
// Implementation
}
}
Configuration
Configuration is managed through appsettings.json:
OutSystemsSettings: OutSystems connection parametersLogging: Log levels and output configuration
Troubleshooting
Common Issues
- Authentication Failures: Verify your OutSystems credentials and URL
- Scraping Errors: Ensure Chrome is installed via
dotnet run -- install chromium - Database Errors: Delete
outsystems_mcp.dbto reset the cache
Logs
Check the logs/ directory for detailed error information:
mcp-server-YYYYMMDD.log: Daily log files with all events
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Security
- Never commit
appsettings.jsonwith real credentials - Use environment variables for sensitive data in production
- The
.gitignorefile excludes sensitive files by default
License
This project is licensed under the MIT License - see the file for details.
Acknowledgments
- Built using the Model Context Protocol
- Powered by Microsoft.Playwright
- Database operations via Entity Framework Core