{
  "markdown": "![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)\n\n[![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)\n[![Built for MyMLH](https://img.shields.io/badge/Built_for-MyMLH-E73427?logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIGlkPSJMYXllcl8xIiB4PSIwIiB5PSIwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxMjgwIDQ4MC43NCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTI4MCA0ODAuNzQiPjxzdHlsZT4uc3Qwe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I2ZmZn08L3N0eWxlPjxwYXRoIGlkPSJTaGFwZV8wMDAwMDAzMzMzOTA1MDQ4NDMzMDU1ODk5MDAwMDAwNjAxOTE2MzA0MDkwNTA5Nzg4NF8iIGQ9Ik00MTYuNDUgMzIuOThjOC4yOCAzLjYgMTUuNDggOC42NCAyMS42IDE0Ljc2IDYuMTIgNi4xMiAxMC44IDEzLjMyIDE0Ljc2IDIxLjYgMy42IDguMjggNS40IDE3LjI4IDUuNCAyNi42NHYzNDEuMjdjMCAzLjI0LTEuMDggNS43Ni0zLjI0IDcuOTJzLTQuNjggMy4yNC03LjkyIDMuMjRoLTgxLjcyYy0zLjI0IDAtNS43Ni0xLjA4LTcuNTYtMy4yNHMtMi44OC00LjY4LTIuODgtNy45MlYxMjYuOTNoLTY1Ljg4djMxMC4zMWMwIDMuMjQtMS4wOCA1Ljc2LTIuODggNy45MnMtNC42OCAzLjI0LTcuNTYgMy4yNGgtNzQuMTZjLTMuMjQgMC01Ljc2LTEuMDgtNy45Mi0zLjI0cy0zLjI0LTQuNjgtMy4yNC03LjkyVjEyNi45M2gtNjUuODh2MzEwLjMxYzAgNy41Ni0zLjYgMTEuMTYtMTEuMTYgMTEuMTZoLTgxYy03LjU2IDAtMTEuMTYtMy42LTExLjE2LTExLjE2VjM4Ljc0YzAtNy41NiAzLjYtMTEuMTYgMTEuMTYtMTEuMTZoMzU0LjIzYzkuNzMgMCAxOC4zNyAxLjggMjcuMDEgNS40eiIgY2xhc3M9InN0MCIvPjxwYXRoIGlkPSJTaGFwZV8wMDAwMDE2NTkzNzc4NTYzNDc0MjEzMDgxMDAwMDAwMzU1ODM2MzY0NzQ2NjQ1OTU0M18iIGQ9Ik04MTQuMjMgMzQ2LjE3YzMuMjQgMCA2LjEyIDEuMDggNy45MiAzLjI0IDIuMTYgMi4xNiAzLjI0IDUuMDQgMy4yNCA4LjI4djc5LjU2YzAgMy4yNC0xLjA4IDUuNzYtMy4yNCA4LjI4LTIuMTYgMi4xNi00LjY4IDMuMjQtNy45MiAzLjI0SDUzNC41MmMtNy45MiAwLTExLjg4LTMuOTYtMTEuODgtMTEuNTJWMzkuMWMwLTcuNTYgMy45Ni0xMS41MiAxMS44OC0xMS41Mmg4NS42OGM3LjkyIDAgMTEuODggMy45NiAxMS44OCAxMS41MnYyOTYuNjNjMCAzLjI0IDEuMDggNS43NiAzLjYgNy45MiAyLjE2IDIuMTYgNS4wNCAyLjg4IDguMjggMi44OGgxNzAuMjd2LS4zNnoiIGNsYXNzPSJzdDAiLz48cGF0aCBpZD0iU2hhcGVfMDAwMDAxMDM5NTIxOTc1MzE2MzEzMjUyOTAwMDAwMDUxOTk2NzQ2NzgxNDM5NDUxNDRfIiBkPSJNMTI0NC4wNSAyNy41OGMzLjI0IDAgNi4xMiAxLjA4IDguMjggMy4yNCAyLjE2IDIuMTYgMy42IDUuMDQgMy42IDguMjh2Mzk5LjIyYzAgMy4yNC0xLjA4IDUuNzYtMy42IDguMjgtMi4xNiAyLjE2LTUuMDQgMy4yNC04LjI4IDMuMjRoLTg3LjEyYy0zLjI0IDAtNi4xMi0xLjA4LTguMjgtMy4yNC0yLjE2LTIuMTYtMy42LTUuMDQtMy42LTguMjhWMjk5LjAxYzAtMy4yNC0xLjA4LTUuNzYtMy4yNC03Ljkycy00LjY4LTIuODgtOC4yOC0yLjg4SDEwMTEuNWMtMy4yNCAwLTYuMTIgMS4wOC04LjI4IDIuODgtMi4xNiAyLjE2LTMuNiA0LjY4LTMuNiA3LjkydjEzOS4zMWMwIDcuNTYtMy45NiAxMS41Mi0xMS44OCAxMS41MmgtODYuNGMtNy45MiAwLTExLjg4LTMuOTYtMTEuODgtMTEuNTJWMzkuMWMwLTcuNTYgMy45Ni0xMS41MiAxMS44OC0xMS41Mmg4Ni40YzcuOTIgMCAxMS44OCAzLjk2IDExLjg4IDExLjUydjEzNC45OWMwIDcuNTYgMy45NiAxMS41MiAxMS44OCAxMS41MmgxMjIuMDNjMy4yNCAwIDYuMTItMS4wOCA4LjI4LTMuMjQgMi4xNi0yLjE2IDMuMjQtNS4wNCAzLjI0LTguMjhWMzkuMWMwLTMuMjQgMS4wOC01Ljc2IDMuNi04LjI4IDIuMTYtMi4xNiA1LjA0LTMuMjQgOC4yOC0zLjI0aDg3LjEyeiIgY2xhc3M9InN0MCIvPjwvc3ZnPg==)](https://www.mlh.com/)\n[![Cloudflare Workers](https://img.shields.io/badge/Cloudflare-Workers-F38020?logo=cloudflare&logoColor=white)](https://developers.cloudflare.com/workers/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\n[![Built with Hono](https://img.shields.io/badge/Built_with-Hono-E36002?logo=hono&logoColor=white)](https://hono.dev/)\n[![MIT License](https://img.shields.io/badge/License-MIT-blue.svg)](https://wei.mit-license.org)\n[![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)\n\nA [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.\n\n## Features\n\n- **Secure Authentication**: Implements [MyMLH API v4 with OAuth](https://www.mlh.com/developers/docs) for robust and secure user authentication.\n- **User Data Access**: Provides tools to fetch a user's MyMLH profile, education, employment history, and more.\n- **Automatic Token Management**: Handles token refresh and secure storage automatically.\n- **Cloudflare Workers**: Built to run on the edge for low-latency, scalable performance.\n- **Easy Deployment**: Can be deployed to your own Cloudflare account in minutes.\n\n## Quick Start\n\nYou 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).\n\n**Endpoint**: `https://mymlh-mcp.git.ci/mcp`\n\n### Add MCP Server\n\n[![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)\n[![Install in Cursor](https://img.shields.io/badge/Cursor-Install_MCP-000000)](https://cursor.com/en/install-mcp?name=mymlh&config=eyJ1cmwiOiJodHRwczovL215bWxoLW1jcC5naXQuY2kvbWNwIn0%3D)\n\nExample configuration snippets for common MCP clients:\n\n**VS Code:**\n\n```json\n{\n  \"servers\": {\n    \"mymlh\": {\n      \"type\": \"http\",\n      \"url\": \"https://mymlh-mcp.git.ci/mcp\"\n    }\n  }\n}\n```\n\n**Cursor and many clients:**\n\n```json\n{\n  \"mcpServers\": {\n    \"mymlh\": {\n      \"url\": \"https://mymlh-mcp.git.ci/mcp\"\n    }\n  }\n}\n```\n\n**Windsurf and many clients:**\n\n```json\n{\n  \"mcpServers\": {\n    \"mymlh\": {\n      \"serverUrl\": \"https://mymlh-mcp.git.ci/mcp\"\n    }\n  }\n}\n```\n\n**Augment Code:**\n\n```json\n{\n  \"mcpServers\": {\n    \"mymlh\": {\n      \"url\": \"https://mymlh-mcp.git.ci/mcp\",\n      \"type\": \"http\"\n    }\n  }\n}\n```\n\n**Claude Code:**\n\n```sh\nclaude mcp add --transport http mymlh https://mymlh-mcp.git.ci/mcp\n```\n\n**Gemini CLI:**\n\n```sh\ngemini mcp add --transport http mymlh https://mymlh-mcp.git.ci/mcp\n```\n\n**Codex CLI:**\n\n```sh\ncodex mcp add mymlh --url https://mymlh-mcp.git.ci/mcp\n```\n\n**Cline:**\n\n```json\n{\n  \"mcpServers\": {\n    \"mymlh\": {\n      \"type\": \"streamableHttp\",\n      \"url\": \"https://mymlh-mcp.git.ci/mcp\"\n    }\n  }\n}\n```\n\n**Other clients:**\n\nConsult 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.\n\n### Fallback Option\n\nFor 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.\n\nExample `mcp-remote` configuration snippet:\n\n```json\n{\n  \"mcpServers\": {\n    \"mymlh\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"mcp-remote\",\n        \"https://mymlh-mcp.git.ci/mcp\"\n      ]\n    }\n  }\n}\n```\n\nSee [`mcp-remote` documentation](https://www.npmjs.com/package/mcp-remote#usage) for more details on usage.\n\n## Available Tools\n\nOnce connected and authenticated, you can use the following tools:\n\n| Tool             | Description                      |\n| ---------------- | -------------------------------- |\n| `mymlh_get_user` | Fetch current MyMLH user profile |\n\n### Test with MCP Inspector\n\nYou can test the remote MCP server using the [Model Context Protocol Inspector](https://modelcontextprotocol.io/docs/tools/inspector).\n\n1.  Run the Inspector from your terminal:\n    ```bash\n    npx @modelcontextprotocol/inspector@latest\n    ```\n2.  Enter the server URL: `https://mymlh-mcp.git.ci/mcp` and click \"Connect\".\n3.  Follow the authentication flow to connect and test the tools.\n\n### Testing with Cloudflare AI Playground\n\nYou can also test the server directly using the [Cloudflare Workers AI LLM Playground](https://playground.ai.cloudflare.com/).\n\n1.  Go to the playground link.\n2.  Enter the server URL: `https://mymlh-mcp.git.ci/mcp`\n3.  Follow the authentication flow to connect and test the tools.\n\n### Example Usage\n\nYou can interact with the MyMLH MCP server using natural language in your AI assistant:\n\n- \"Get my MyMLH user info.\"\n- \"Show me my MyMLH profile.\"\n- \"Generate a resume using my MyMLH profile.\"\n- \"Create a GitHub profile README using my MyMLH data.\"\n\n## Deploying Your Own Instance\n\nFor full control, you can deploy your own instance to Cloudflare. See the [Deployment Guide](DEPLOYMENT.md) for detailed instructions.\n\n## Contributing\n\nWe welcome contributions! Whether you're fixing a bug, adding a feature, or improving documentation, your help is appreciated.\n\nFor development setup, project structure, how to add tools, and contributing guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\n[MIT](https://wei.mit-license.org)\n",
  "bytes": 9079,
  "sha": "ee6aec2b014edb103a8027440e08f42fd8a374c9293f25d3ae0cfc808c21d5d0",
  "repo_slug": "wei/mymlh-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_ci_git_mymlh_mcp_server_d1641476/readme"
}