EpicMe MCP
The EpicMe MCP server is an experimental personal journaling application and MCP tool demonstration platform that provides:
Journaling Features: Create, manage, and organize journal entries with tags, moods, and privacy settings. Get AI-powered tag suggestions and summaries.
User Management: Authenticate users via email with TOTP validation, manage authentication sessions, and access user information.
Tag Management: Create, update, delete, and associate tags with journal entries.
MCP Demonstrations: Echo messages, add numbers, simulate long-running operations with progress updates, demonstrate message annotations (error, success, debug), provide resource references (ID 1-100), and showcase user elicitation for gathering information like favorite color, number, and pets.
Utilities: Print environment variables for debugging, sample text from LLMs, fetch tiny image references, return multiple resource links, and provide structured content like weather data with schema validation.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EpicMe MCP Create a journal entry about my productive morning with coffee and coding"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
EpicMe MCP
This is an example of an application that's exclusively accessible via Model Context Protocol (MCP).
Everything from user registration and authentication to interacting with user data is handled via MCP tools.
The goal is to demonstrate a possible future of applications where users interact with our apps via natural language with LLMs and the MCP protocol. This will also be the basis upon which I will teach how to build MCP tools on EpicAI.pro.
How to Use
⚠️ Important Disclaimer: This is an experimental playground, not a production service. There are no SLAs, guarantees of data privacy, or data retention policies. Use at your own risk and don't store anything important or sensitive.
Server URL
The EpicMe MCP server is deployed at:
https://epic-me-mcp.kentcdodds.workers.dev/mcpWhat You Can Do
EpicMe is a personal journaling application that allows you to:
Create and manage journal entries with titles, content, mood, location, weather, and privacy settings
Organize entries with tags for better categorization and filtering
Get AI-powered tag suggestions for your entries
Summarize your journal entries with optional filtering by tags or date range
Mark entries as favorites and set privacy levels
Getting Started
Connect to the MCP server using your preferred MCP client (like Claude Desktop)
Authenticate by providing your email address - you'll receive a validation code
Start journaling using natural language commands
Authentication Flow
The authentication is unique because it works with users who don't exist yet:
Use the
authenticatetool with your email addressCheck your email for a TOTP validation code
Use the
validate_tokentool with the code to complete authenticationYou're now logged in and can access all authenticated features
Available Tools
Authentication Tools (Unauthenticated)
authenticate- Start authentication process with your emailvalidate_token- Complete authentication with emailed validation code
User Management Tools (Authenticated)
whoami- Get information about the current userlogout- Remove authentication
Journal Entry Tools (Authenticated)
create_entry- Create a new journal entry with optional tags, mood, location, weatherget_entry- Retrieve a specific journal entry by IDlist_entries- List all entries, optionally filtered by tagsupdate_entry- Update any field of an existing entrydelete_entry- Delete a journal entry
Tag Management Tools (Authenticated)
create_tag- Create a new tag for organizing entriesget_tag- Get details of a specific taglist_tags- List all your tagsupdate_tag- Update tag propertiesdelete_tag- Delete a tagadd_tag_to_entry- Associate a tag with an entry
Available Prompts
suggest_tags- Get AI-powered tag suggestions for a specific journal entrysummarize_journal_entries- Get a summary of your journal entries, with optional filtering by tags or date range
Available Resources
epicme://credits- Credits informationepicme://users/current- Current user informationepicme://entries/{id}- Specific journal entry dataepicme://entries- List of all journal entriesepicme://tags/{id}- Specific tag dataepicme://tags- List of all tags
Example Usage
Here are some example natural language commands you can use:
"Authenticate me with my email address"
"Create a new journal entry about my day at the beach"
"List all my journal entries"
"Show me entries tagged with 'work'"
"Suggest tags for my latest entry"
"Summarize my journal entries from last week"
"Update my entry to mark it as a favorite"
"Create a new tag called 'personal goals'"
Related MCP server: Anytype MCP Server
Authentication
The authentication flow is unique because we need to be able to go through OAuth for users who don't exist yet (users need to register first). So we generate a grant automatically without the user having to go through the OAuth flow themselves. Then we allow the user to claim the grant via a TOTP code which is emailed to them.
This works well enough.
Known Issues
During development, if you delete the .wrangler directory, you're deleting the
dynamically registered clients. Those clients don't know that their entries have
been deleted so they won't attempt to re-register. In the MCP Inspector, you can
go in the browser dev tools and clear the session storage and it will
re-register. In other clients I do not know how to make them re-register.
Available Tools
11 toolsaddB
Adds two numbers
Inputs: a (required), b (required).
annotatedMessageC
Demonstrates how annotations can be used to provide metadata about content
Inputs: messageType (required), includeImage.
echoC
Echoes back the input
Inputs: message (required).
getResourceLinksC
Returns multiple resource links that reference different types of resources
Inputs: count.
getResourceReferenceC
Returns a resource reference that can be used by MCP clients
Inputs: resourceId (required).
getTinyImageC
Returns the MCP_TINY_IMAGE
Inputs: no named parameters.
longRunningOperationC
Demonstrates a long running operation with progress updates
Inputs: duration, steps.
printEnvA
Prints all environment variables, helpful for debugging MCP server configuration
Inputs: no named parameters.
sampleLLMC
Samples from an LLM using MCP's sampling feature
Inputs: prompt (required), maxTokens.
structuredContentC
Returns structured content along with an output schema for client data validation
Inputs: location (required). Returns: humidity, conditions, temperature
zipB
Compresses the provided resource files (mapping of name to URI, which can be a data URI) to a zip file, which it returns as a data URI resource link.
Inputs: files (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Multiple tools have overlapping or unclear purposes. For example, 'annotatedMessage', 'structuredContent', and 'getResourceLinks' all seem to demonstrate metadata or structured data features, making it difficult for an agent to choose between them. Similarly, 'echo' and 'printEnv' both serve debugging purposes, while 'add' and 'zip' are isolated utilities with no clear connection to the others.
The naming conventions are inconsistent and chaotic. There is a mix of styles: some tools use camelCase (e.g., 'annotatedMessage', 'getResourceLinks'), others use snake_case (e.g., 'longRunningOperation', 'printEnv'), and some are single words (e.g., 'add', 'echo', 'zip'). There is no discernible pattern, which makes the set harder to navigate and predict.
With 11 tools, the count is reasonable for a server, but it feels borderline due to the lack of a clear domain. The tools appear to be a miscellaneous collection of demonstrations and utilities rather than a cohesive set for a specific purpose, making the number seem slightly high for the apparent scope.
The server lacks a clear domain, making it difficult to assess completeness. However, based on the tool descriptions, it seems to be a demonstration server for MCP features. There are significant gaps: for example, if it's meant to showcase MCP capabilities, it might miss tools for other core features like streaming or error handling. The tools are fragmented and don't form a complete workflow or coverage of a specific area.
Related MCP Connectors
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
API-first CRM for LLMs - contacts, companies, deals and activities over a native MCP server.
Hosted MCP server for AI-driven data ops. Create apps, manage schemas, and CRUD structured data.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA simple application demonstrating Model Context Protocol (MCP) integration with FastAPI and Streamlit, allowing users to interact with LLMs through a clean interface.3-
- AlicenseNot gradedqualityBmaintenanceA Model Context Protocol (MCP) server implementation that enables AI assistants to interact with Anytype's API through natural language, allowing users to manage their knowledge base through conversation.2,277 npm538MIT
- FlicenseNot gradedqualityDmaintenanceEnables natural language interaction with FastAPI applications through Google's Gemini AI using MCP tools. Provides CRUD operations for user management and application health monitoring through conversational prompts.-
- AlicenseNot gradedqualityDmaintenanceComplete Model Context Protocol (MCP) server designed to facilitate seamless interaction between Large Language Models (LLMs) and end-users. It provides a robust set of tools for notifications, confirmations, selections, and text inputs, supporting multiple rendering modes including Console, GUI, and Telegram Bot.2MIT