Skip to main content
Glama

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/mcp

What 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

  1. Connect to the MCP server using your preferred MCP client (like Claude Desktop)

  2. Authenticate by providing your email address - you'll receive a validation code

  3. Start journaling using natural language commands

Authentication Flow

The authentication is unique because it works with users who don't exist yet:

  1. Use the authenticate tool with your email address

  2. Check your email for a TOTP validation code

  3. Use the validate_token tool with the code to complete authentication

  4. You're now logged in and can access all authenticated features

Available Tools

Authentication Tools (Unauthenticated)

  • authenticate - Start authentication process with your email

  • validate_token - Complete authentication with emailed validation code

User Management Tools (Authenticated)

  • whoami - Get information about the current user

  • logout - Remove authentication

Journal Entry Tools (Authenticated)

  • create_entry - Create a new journal entry with optional tags, mood, location, weather

  • get_entry - Retrieve a specific journal entry by ID

  • list_entries - List all entries, optionally filtered by tags

  • update_entry - Update any field of an existing entry

  • delete_entry - Delete a journal entry

Tag Management Tools (Authenticated)

  • create_tag - Create a new tag for organizing entries

  • get_tag - Get details of a specific tag

  • list_tags - List all your tags

  • update_tag - Update tag properties

  • delete_tag - Delete a tag

  • add_tag_to_entry - Associate a tag with an entry

Available Prompts

  • suggest_tags - Get AI-powered tag suggestions for a specific journal entry

  • summarize_journal_entries - Get a summary of your journal entries, with optional filtering by tags or date range

Available Resources

  • epicme://credits - Credits information

  • epicme://users/current - Current user information

  • epicme://entries/{id} - Specific journal entry data

  • epicme://entries - List of all journal entries

  • epicme://tags/{id} - Specific tag data

  • epicme://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 tools
addB

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).

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

    C2.6/5.0

    Scored across 11 tools

    Disambiguation2/5

    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.

    Naming Consistency2/5

    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.

    Tool Count3/5

    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.

    Completeness2/5

    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

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      A simple application demonstrating Model Context Protocol (MCP) integration with FastAPI and Streamlit, allowing users to interact with LLMs through a clean interface.
      3
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Complete 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.
      2
      MIT