{"id":28436940,"url":"https://github.com/epicweb-dev/epic-me-mcp","last_synced_at":"2025-10-23T17:32:56.079Z","repository":{"id":289756876,"uuid":"971936592","full_name":"epicweb-dev/epic-me-mcp","owner":"epicweb-dev","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-05T13:19:27.000Z","size":539,"stargazers_count":49,"open_issues_count":3,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-05T14:36:48.667Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epicweb-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-24T09:31:50.000Z","updated_at":"2025-07-05T13:19:30.000Z","dependencies_parsed_at":"2025-05-28T20:26:49.785Z","dependency_job_id":"bb7ae57e-89f2-449d-9c25-66dfa9eeceb8","html_url":"https://github.com/epicweb-dev/epic-me-mcp","commit_stats":null,"previous_names":["epicweb-dev/epic-me-mcp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/epicweb-dev/epic-me-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicweb-dev%2Fepic-me-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicweb-dev%2Fepic-me-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicweb-dev%2Fepic-me-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicweb-dev%2Fepic-me-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epicweb-dev","download_url":"https://codeload.github.com/epicweb-dev/epic-me-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicweb-dev%2Fepic-me-mcp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264958196,"owners_count":23689011,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-05T23:08:01.082Z","updated_at":"2025-10-23T17:32:56.074Z","avatar_url":"https://github.com/epicweb-dev.png","language":"TypeScript","funding_links":[],"categories":["Note-Taking and Knowledge Bases"],"sub_categories":[],"readme":"# EpicMe MCP\n\nThis is an example of an application that's exclusively accessible via Model\nContext Protocol (MCP).\n\nEverything from user registration and authentication to interacting with user\ndata is handled via MCP tools.\n\nThe goal is to demonstrate a possible future of applications where users\ninteract with our apps via natural language with LLMs and the MCP protocol. This\nwill also be the basis upon which I will teach how to build MCP tools on\n[EpicAI.pro](https://www.epicai.pro).\n\n## How to Use\n\n**⚠️ Important Disclaimer: This is an experimental playground, not a production\nservice. There are no SLAs, guarantees of data privacy, or data retention\npolicies. Use at your own risk and don't store anything important or\nsensitive.**\n\n### Server URL\n\nThe EpicMe MCP server is deployed at:\n\n```\nhttps://epic-me-mcp.kentcdodds.workers.dev/mcp\n```\n\n### What You Can Do\n\nEpicMe is a personal journaling application that allows you to:\n\n- **Create and manage journal entries** with titles, content, mood, location,\n  weather, and privacy settings\n- **Organize entries with tags** for better categorization and filtering\n- **Get AI-powered tag suggestions** for your entries\n- **Summarize your journal entries** with optional filtering by tags or date\n  range\n- **Mark entries as favorites** and set privacy levels\n\n### Getting Started\n\n1. **Connect to the MCP server** using your preferred MCP client (like\n   [Claude Desktop](https://claude.ai/download))\n2. **Authenticate** by providing your email address - you'll receive a\n   validation code\n3. **Start journaling** using natural language commands\n\n### Authentication Flow\n\nThe authentication is unique because it works with users who don't exist yet:\n\n1. Use the `authenticate` tool with your email address\n2. Check your email for a TOTP validation code\n3. Use the `validate_token` tool with the code to complete authentication\n4. You're now logged in and can access all authenticated features\n\n### Available Tools\n\n#### Authentication Tools (Unauthenticated)\n\n- **`authenticate`** - Start authentication process with your email\n- **`validate_token`** - Complete authentication with emailed validation code\n\n#### User Management Tools (Authenticated)\n\n- **`whoami`** - Get information about the current user\n- **`logout`** - Remove authentication\n\n#### Journal Entry Tools (Authenticated)\n\n- **`create_entry`** - Create a new journal entry with optional tags, mood,\n  location, weather\n- **`get_entry`** - Retrieve a specific journal entry by ID\n- **`list_entries`** - List all entries, optionally filtered by tags\n- **`update_entry`** - Update any field of an existing entry\n- **`delete_entry`** - Delete a journal entry\n\n#### Tag Management Tools (Authenticated)\n\n- **`create_tag`** - Create a new tag for organizing entries\n- **`get_tag`** - Get details of a specific tag\n- **`list_tags`** - List all your tags\n- **`update_tag`** - Update tag properties\n- **`delete_tag`** - Delete a tag\n- **`add_tag_to_entry`** - Associate a tag with an entry\n\n### Available Prompts\n\n- **`suggest_tags`** - Get AI-powered tag suggestions for a specific journal\n  entry\n- **`summarize_journal_entries`** - Get a summary of your journal entries, with\n  optional filtering by tags or date range\n\n### Available Resources\n\n- **`epicme://credits`** - Credits information\n- **`epicme://users/current`** - Current user information\n- **`epicme://entries/{id}`** - Specific journal entry data\n- **`epicme://entries`** - List of all journal entries\n- **`epicme://tags/{id}`** - Specific tag data\n- **`epicme://tags`** - List of all tags\n\n### Example Usage\n\nHere are some example natural language commands you can use:\n\n- \"Authenticate me with my email address\"\n- \"Create a new journal entry about my day at the beach\"\n- \"List all my journal entries\"\n- \"Show me entries tagged with 'work'\"\n- \"Suggest tags for my latest entry\"\n- \"Summarize my journal entries from last week\"\n- \"Update my entry to mark it as a favorite\"\n- \"Create a new tag called 'personal goals'\"\n\n## Authentication\n\nThe authentication flow is unique because we need to be able to go through OAuth\nfor users who don't exist yet (users need to register first). So we generate a\ngrant automatically without the user having to go through the OAuth flow\nthemselves. Then we allow the user to claim the grant via a TOTP code which is\nemailed to them.\n\nThis works well enough.\n\n## Known Issues\n\nDuring development, if you delete the `.wrangler` directory, you're deleting the\ndynamically registered clients. Those clients don't know that their entries have\nbeen deleted so they won't attempt to re-register. In the MCP Inspector, you can\ngo in the browser dev tools and clear the session storage and it will\nre-register. In other clients I do not know how to make them re-register.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepicweb-dev%2Fepic-me-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepicweb-dev%2Fepic-me-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepicweb-dev%2Fepic-me-mcp/lists"}