# mymlh-mcp-server [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/wei/mymlh-mcp-server  
**GitHub Stars:** 10  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mymlh-mcp-server

## Description
OAuth-enabled MyMLH MCP server for accessing MyMLH data.

## Tools
Capabilities this server exposes over MCP:

- **mymlh_get_user** — Fetch current MyMLH user profile

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "mymlh-mcp-server": {
    "command": "npx",
    "args": ["-y","@modelcontextprotocol/inspector@latest"]
  }
}
```

## Documentation & README

![mymlh-mcp-server](https://socialify.git.ci/wei/mymlh-mcp-server/image?description=1&font=Bitter&logo=https%3A%2F%2Fstatic.mlh.io%2Fbrand-assets%2Flogo%2Fofficial%2Fmlh-logo-color.svg&name=1&theme=Light)

[![Remote HTTP MCP Server](https://img.shields.io/badge/MCP-Streamable_HTTP-000000?logo=modelcontextprotocol&logoColor=white)](https://modelcontextprotocol.io/specification/2026-07-28/basic/transports)
[![Built for MyMLH](https://img.shields.io/badge/Built_for-MyMLH-E73427?logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIGlkPSJMYXllcl8xIiB4PSIwIiB5PSIwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxMjgwIDQ4MC43NCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTI4MCA0ODAuNzQiPjxzdHlsZT4uc3Qwe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I2ZmZn08L3N0eWxlPjxwYXRoIGlkPSJTaGFwZV8wMDAwMDAzMzMzOTA1MDQ4NDMzMDU1ODk5MDAwMDAwNjAxOTE2MzA0MDkwNTA5Nzg4NF8iIGQ9Ik00MTYuNDUgMzIuOThjOC4yOCAzLjYgMTUuNDggOC42NCAyMS42IDE0Ljc2IDYuMTIgNi4xMiAxMC44IDEzLjMyIDE0Ljc2IDIxLjYgMy42IDguMjggNS40IDE3LjI4IDUuNCAyNi42NHYzNDEuMjdjMCAzLjI0LTEuMDggNS43Ni0zLjI0IDcuOTJzLTQuNjggMy4yNC03LjkyIDMuMjRoLTgxLjcyYy0zLjI0IDAtNS43Ni0xLjA4LTcuNTYtMy4yNHMtMi44OC00LjY4LTIuODgtNy45MlYxMjYuOTNoLTY1Ljg4djMxMC4zMWMwIDMuMjQtMS4wOCA1Ljc2LTIuODggNy45MnMtNC42OCAzLjI0LTcuNTYgMy4yNGgtNzQuMTZjLTMuMjQgMC01Ljc2LTEuMDgtNy45Mi0zLjI0cy0zLjI0LTQuNjgtMy4yNC03LjkyVjEyNi45M2gtNjUuODh2MzEwLjMxYzAgNy41Ni0zLjYgMTEuMTYtMTEuMTYgMTEuMTZoLTgxYy03LjU2IDAtMTEuMTYtMy42LTExLjE2LTExLjE2VjM4Ljc0YzAtNy41NiAzLjYtMTEuMTYgMTEuMTYtMTEuMTZoMzU0LjIzYzkuNzMgMCAxOC4zNyAxLjggMjcuMDEgNS40eiIgY2xhc3M9InN0MCIvPjxwYXRoIGlkPSJTaGFwZV8wMDAwMDE2NTkzNzc4NTYzNDc0MjEzMDgxMDAwMDAwMzU1ODM2MzY0NzQ2NjQ1OTU0M18iIGQ9Ik04MTQuMjMgMzQ2LjE3YzMuMjQgMCA2LjEyIDEuMDggNy45MiAzLjI0IDIuMTYgMi4xNiAzLjI0IDUuMDQgMy4yNCA4LjI4djc5LjU2YzAgMy4yNC0xLjA4IDUuNzYtMy4yNCA4LjI4LTIuMTYgMi4xNi00LjY4IDMuMjQtNy45MiAzLjI0SDUzNC41MmMtNy45MiAwLTExLjg4LTMuOTYtMTEuODgtMTEuNTJWMzkuMWMwLTcuNTYgMy45Ni0xMS41MiAxMS44OC0xMS41Mmg4NS42OGM3LjkyIDAgMTEuODggMy45NiAxMS44OCAxMS41MnYyOTYuNjNjMCAzLjI0IDEuMDggNS43NiAzLjYgNy45MiAyLjE2IDIuMTYgNS4wNCAyLjg4IDguMjggMi44OGgxNzAuMjd2LS4zNnoiIGNsYXNzPSJzdDAiLz48cGF0aCBpZD0iU2hhcGVfMDAwMDAxMDM5NTIxOTc1MzE2MzEzMjUyOTAwMDAwMDUxOTk2NzQ2NzgxNDM5NDUxNDRfIiBkPSJNMTI0NC4wNSAyNy41OGMzLjI0IDAgNi4xMiAxLjA4IDguMjggMy4yNCAyLjE2IDIuMTYgMy42IDUuMDQgMy42IDguMjh2Mzk5LjIyYzAgMy4yNC0xLjA4IDUuNzYtMy42IDguMjgtMi4xNiAyLjE2LTUuMDQgMy4yNC04LjI4IDMuMjRoLTg3LjEyYy0zLjI0IDAtNi4xMi0xLjA4LTguMjgtMy4yNC0yLjE2LTIuMTYtMy42LTUuMDQtMy42LTguMjhWMjk5LjAxYzAtMy4yNC0xLjA4LTUuNzYtMy4yNC03Ljkycy00LjY4LTIuODgtOC4yOC0yLjg4SDEwMTEuNWMtMy4yNCAwLTYuMTIgMS4wOC04LjI4IDIuODgtMi4xNiAyLjE2LTMuNiA0LjY4LTMuNiA3LjkydjEzOS4zMWMwIDcuNTYtMy45NiAxMS41Mi0xMS44OCAxMS41MmgtODYuNGMtNy45MiAwLTExLjg4LTMuOTYtMTEuODgtMTEuNTJWMzkuMWMwLTcuNTYgMy45Ni0xMS41MiAxMS44OC0xMS41Mmg4Ni40YzcuOTIgMCAxMS44OCAzLjk2IDExLjg4IDExLjUydjEzNC45OWMwIDcuNTYgMy45NiAxMS41MiAxMS44OCAxMS41MmgxMjIuMDNjMy4yNCAwIDYuMTItMS4wOCA4LjI4LTMuMjQgMi4xNi0yLjE2IDMuMjQtNS4wNCAzLjI0LTguMjhWMzkuMWMwLTMuMjQgMS4wOC01Ljc2IDMuNi04LjI4IDIuMTYtMi4xNiA1LjA0LTMuMjQgOC4yOC0zLjI0aDg3LjEyeiIgY2xhc3M9InN0MCIvPjwvc3ZnPg==)](https://www.mlh.com/)
[![Cloudflare Workers](https://img.shields.io/badge/Cloudflare-Workers-F38020?logo=cloudflare&logoColor=white)](https://developers.cloudflare.com/workers/)
[![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
[![Built with Hono](https://img.shields.io/badge/Built_with-Hono-E36002?logo=hono&logoColor=white)](https://hono.dev/)
[![MIT License](https://img.shields.io/badge/License-MIT-blue.svg)](https://wei.mit-license.org)
[![CI](https://github.com/wei/mymlh-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/wei/mymlh-mcp-server/actions/workflows/ci.yml)

A [Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) server that provides secure, OAuth-authenticated access to [MyMLH](https://www.mlh.com/). This server enables AI assistants and MCP clients to interact with the MyMLH API on behalf of users.

## Features

- **Secure Authentication**: Implements [MyMLH API v4 with OAuth](https://www.mlh.com/developers/docs) for robust and secure user authentication.
- **User Data Access**: Provides tools to fetch a user's MyMLH profile, education, employment history, and more.
- **Automatic Token Management**: Handles token refresh and secure storage automatically.
- **Cloudflare Workers**: Built to run on the edge for low-latency, scalable performance.
- **Easy Deployment**: Can be deployed to your own Cloudflare account in minutes.

## Quick Start

You can connect to our publicly hosted instance using any MCP client that supports the [Streamable HTTP transport with OAuth](https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization).

**Endpoint**: `https://mymlh-mcp.git.ci/mcp`

### Add MCP Server

[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_MCP-0098FF)](https://insiders.vscode.dev/redirect/mcp/install?name=mymlh&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmymlh-mcp.git.ci%2Fmcp%22%7D)
[![Install in Cursor](https://img.shields.io/badge/Cursor-Install_MCP-000000)](https://cursor.com/en/install-mcp?name=mymlh&config=eyJ1cmwiOiJodHRwczovL215bWxoLW1jcC5naXQuY2kvbWNwIn0%3D)

Example configuration snippets for common MCP clients:

**VS Code:**

```json
{
  "servers": {
    "mymlh": {
      "type": "http",
      "url": "https://mymlh-mcp.git.ci/mcp"
    }
  }
}
```

**Cursor and many clients:**

```json
{
  "mcpServers": {
    "mymlh": {
      "url": "https://mymlh-mcp.git.ci/mcp"
    }
  }
}
```

**Windsurf and many clients:**

```json
{
  "mcpServers": {
    "mymlh": {
      "serverUrl": "https://mymlh-mcp.git.ci/mcp"
    }
  }
}
```

**Augment Code:**

```json
{
  "mcpServers": {
    "mymlh": {
      "url": "https://mymlh-mcp.git.ci/mcp",
      "type": "http"
    }
  }
}
```

**Claude Code:**

```sh
claude mcp add --transport http mymlh https://mymlh-mcp.git.ci/mcp
```

**Gemini CLI:**

```sh
gemini mcp add --transport http mymlh https://mymlh-mcp.git.ci/mcp
```

**Codex CLI:**

```sh
codex mcp add mymlh --url https://mymlh-mcp.git.ci/mcp
```

**Cline:**

```json
{
  "mcpServers": {
    "mymlh": {
      "type": "streamableHttp",
      "url": "https://mymlh-mcp.git.ci/mcp"
    }
  }
}
```

**Other clients:**

Consult your client's documentation for connecting to an MCP server. If you see 401 errors, the client likely does not support [Streamable HTTP with OAuth](https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization) and you will need to use the fallback option below.

### Fallback Option

For environments where Streamable HTTP with OAuth is not supported, you may fall back to stdio transport with [`mcp-remote`](https://www.npmjs.com/package/mcp-remote). This wraps the HTTP MCP server into a local stdio interface, forwarding requests over HTTP behind the scenes to ensure compatibility.

Example `mcp-remote` configuration snippet:

```json
{
  "mcpServers": {
    "mymlh": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mymlh-mcp.git.ci/mcp"
      ]
    }
  }
}
```

See [`mcp-remote` documentation](https://www.npmjs.com/package/mcp-remote#usage) for more details on usage.

## Available Tools

Once connected and authenticated, you can use the following tools:

| Tool             | Description                      |
| ---------------- | -------------------------------- |
| `mymlh_get_user` | Fetch current MyMLH user profile |

### Test with MCP Inspector

You can test the remote MCP server using the [Model Context Protocol Inspector](https://modelcontextprotocol.io/docs/tools/inspector).

1.  Run the Inspector from your terminal:
    ```bash
    npx @modelcontextprotocol/inspector@latest
    ```
2.  Enter the server URL: `https://mymlh-mcp.git.ci/mcp` and click "Connect".
3.  Follow the authentication flow to connect and test the tools.

### Testing with Cloudflare AI Playground

You can also test the server directly using the [Cloudflare Workers AI LLM Playground](https://playground.ai.cloudflare.com/).

1.  Go to the playground link.
2.  Enter the server URL: `https://mymlh-mcp.git.ci/mcp`
3.  Follow the authentication flow to connect and test the tools.

### Example Usage

You can interact with the MyMLH MCP server using natural language in your AI assistant:

- "Get my MyMLH user info."
- "Show me my MyMLH profile."
- "Generate a resume using my MyMLH profile."
- "Create a GitHub profile README using my MyMLH data."

## Deploying Your Own Instance

For full control, you can deploy your own instance to Cloudflare. See the [Deployment Guide](DEPLOYMENT.md) for detailed instructions.

## Contributing

We welcome contributions! Whether you're fixing a bug, adding a feature, or improving documentation, your help is appreciated.

For development setup, project structure, how to add tools, and contributing guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).

## License

[MIT](https://wei.mit-license.org)

