README.md•4.13 kB
# MCP Login Server
A Model Context Protocol (MCP) server that provides automated login functionality for `http://localhost` using predefined credentials. This server is designed to work with browser automation tools like the Playwright MCP server.
## Features
- **Automated Login**: Provides tools to perform login operations with predefined credentials
- **Playwright Integration**: Designed to work with the Playwright MCP server for browser automation
- **Connection Testing**: Includes tools to test connectivity to the target URL
- **Credential Management**: Secure handling of login credentials
- **Extensible Architecture**: Easy to add new tools with separated tool definitions
## Project Structure
```
src/
├── index.ts # Main server setup and entry point
├── tools.ts # Tool definitions and registration
└── index.js # Compiled JavaScript (auto-generated)
```
The codebase is structured for easy extensibility:
- **`index.ts`**: Contains the main server setup, startup logic, and process management
- **`tools.ts`**: Contains all tool definitions, registration functions, and configuration
- **`ADDING_TOOLS.md`**: Detailed guide for adding new tools to the server
## Installation
```bash
npm install
npm run build
```
## Usage
### Running the Server
```bash
npm start
```
Or for development:
```bash
npm run dev
```
### Available Tools
The server provides the following MCP tools:
1. **perform_login** - Performs automated login to http://localhost using predefined credentials
2. **get_login_credentials** - Returns the login credentials for verification
3. **test_connection** - Tests if the target URL is accessible
### Configuration
The server is configured with the following credentials:
- **Target URL**: `http://localhost`
- **Username**: `admin`
- **Password**: `AIWorkshopJuly!25`
These credentials are configured for the OrangeHRM system running on localhost.
## MCP Configuration
To use this server with an MCP client (like Claude for Desktop), add the following configuration:
### Windows
```json
{
"mcpServers": {
"login-server": {
"command": "node",
"args": ["C:\\ABSOLUTE\\PATH\\TO\\PROJECT\\build\\index.js"]
}
}
}
```
### macOS/Linux
```json
{
"mcpServers": {
"login-server": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/PROJECT/build/index.js"]
}
}
}
```
## Integration with Playwright MCP Server
This server is designed to work alongside the Playwright MCP server for complete browser automation. The `perform_login` tool provides the necessary information and steps that can be executed by the Playwright MCP server.
### Example Workflow
1. Use the `test_connection` tool to verify the target URL is accessible
2. Use the `perform_login` tool to get login instructions
3. Use Playwright MCP server tools to execute the browser automation steps
## Development
### Project Structure
```
src/
├── index.ts # Main server implementation
├── types.ts # TypeScript type definitions (if any)
build/ # Compiled JavaScript output
.github/ # GitHub configuration
├── copilot-instructions.md # Copilot development guidelines
```
### Building
```bash
npm run build
```
### Scripts
- `npm run build` - Compile TypeScript to JavaScript
- `npm start` - Run the compiled server
- `npm run dev` - Build and run in development mode
- `npm run clean` - Clean build directory
## Dependencies
- `@modelcontextprotocol/sdk` - MCP SDK for TypeScript
- `zod` - Runtime type validation
- `typescript` - TypeScript compiler
## Error Handling
The server includes comprehensive error handling for:
- Connection failures
- Invalid credentials
- Network timeouts
- MCP protocol errors
## Security
- Credentials are stored as constants in the code
- No sensitive data is logged to stdout (only to stderr for debugging)
- Connection testing uses safe HTTP HEAD requests
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Test thoroughly
5. Submit a pull request
## License
ISC License