# Project export: clovis

This document was generated by HackStack to give an AI agent context about a hackathon project. Sections are labeled with their provenance; content marked as truncated was cut to keep this document small.

## Project metadata

- Hackathon: Cal Hacks 12.0
- Tagline: Making Poke.co more like you. Clovis grants the means to mirror your unique communication style: your tone, your vocabulary, and your formality level, making every interaction feel authentically you.
- Devpost: https://devpost.com/software/clovis
- GitHub: https://github.com/saimdlx/clovis.git
- Team: 1 GitHub contributor(s) — saim (15 commits)

## Devpost submission (written by the team)

### Overview

inspiration i was already a fan of Poke's current abilities and integrations prior to thinking about what more it could possibly be capable of. the inspiration came from the simple idea of being able to seamlessly digitize human personality in a way that can be used in day-to-day interactions socially. what it does clovis is an MCP integration designed for Poke by interaction.co that enables truly personalized AI communication. by analyzing your writing patterns in depth, clovis gives Poke the means to mirror your unique communication style: your tone, your vocabulary, and your formality level, making every interaction feel authentically you. clovis is a forward-looking integration feature not yet available in Poke. this MCP server integration demonstrates Poke could leverage protocol-level personalization to become more than just an AI assistant, and instead your digital communication persona. how we built it setting up the mcp server took a fastmcp instance, as well as an ngrok connection in order to give Poke access to the tools i made for it. the tools themselves were developed using python and json in order to grant Poke the information it needed to be more "me". challenges we ran into one of the biggest humps in the development process was a) determining how well this could be integrated into Poke's utility belt, and b) getting the MCP instance live and spun up. accomplishments that we're proud of i'm ultimately proud of the result that came out of this development process, but also especially because of the potential an idea like this holds for not just poke's future as an assistant, but just for how humans interact with machines, and vice versa. i really like how seamlessly Poke ingested the mcp tools, and especially how well the output actually looked compared to my existing messages that i granted it access to. what we learned being that it was my first hackathon, i learned a lot about deploying model context protocol servers and integrating them with existing applications. it was also beneficial to learn more about how python and fastmcp integrate so well to make the ai we currently have that much better. what's next for clovis thinking much, much bigger outside of the scope of just messaging and emails; an idea like clovis could span further onto things like how you interact on social media, or even through a vocal medium. the idea is to not be uncanny or scary about it, but instead to make the machines that we use everyday a bit more like us.

## README (from the GitHub repository)

# clovis

**make Poke more like you.**

clovis is an MCP integration designed for [Poke by interaction.co](https://poke.com) that enables truly personalized AI communication. by analyzing your writing patterns in depth, clovis gives Poke the means to mirror your unique communication style—your tone, your vocabulary, your formality level—making every interaction feel authentically you.

clovis is a forward-looking integration feature **not yet available** in Poke. this MCP server integration demonstrates Poke could leverage protocol-level personalization to become more than just an AI assistant, and instead your digital communication persona.

## why clovis matters

current AI assistants use generic, one-size-fits-all communication styles. Clovis changes this by:

- **analyzing your actual writing** from email communications to understand your personal style
- **categorizing your contacts** (friends, colleagues, support) to apply contextually appropriate tones
- **generating style profiles** that capture your sentence patterns, emoji usage, formality, and signature phrases
- **enabling Poke to communicate as you would**—not as a generic AI, but as your authentic digital self

this is the future of AI interaction: not tools that make you adapt to them, but tools that adapt to you.


## Detected evidence (automated analysis)

Indexed codebase: 3 recognized source files, 4 KB.
- Python (language) — detected in the code

## Codebase structure (from repository index)

### Files (4 of 4)

```
README.md
render.yaml
requirements.txt
src/server.py
```

### Dependencies

- requirements.txt: fastmcp@>=2.12.0, uvicorn@>=0.35.0

### Recent commits (newest first)

- Update README.md
- Update README.md
- Update README.md for capitalization consistency
- Fix capitalization and formatting in README.md
- Update README.md
- Simplify note about Clovis integration availability
- Update README.md
- Update README.md
- Refine Clovis description in README
- Update README to remove unused function descriptions
- Update README.md
- Update README.md
- fix readme
- pushing prod
- Delete pokecotest.py
- test

## Key source files (fetched from GitHub, selected and truncated for size)

### requirements.txt

```
fastmcp>=2.12.0
uvicorn>=0.35.0

```

### src/server.py

```python
#!/usr/bin/env python3
import os
from fastmcp import FastMCP

mcp = FastMCP("clovis integration server")

@mcp.tool(description="Greet a user by name with a welcome message from the MCP server")
def greet(name: str) -> str:
    return f"Hello, {name}!"

@mcp.tool(description="Get information about the MCP server including name, version, environment, and Python version")
def get_server_info() -> dict:
    return {
        "server_name": "clovis integration server",
        "version": "1.0.0",
        "environment": os.environ.get("ENVIRONMENT", "development"),
        "python_version": os.sys.version.split()[0]
    }

@mcp.tool(description="Fetch emails from user contacts to use for persona generation")
def getEmail(email: str) -> list:
    return ["shakeb@truehue.app", "minionmunoz@gmail.com"]

@mcp.tool(description="Analyze the writing style sent to the users contact emails and create a pattern based on the style")
def analyzeWriting(emails: list) -> dict:
    return {
        "tone": "formal" or "casual", 
        "average_sentence": 15,
        "freq_emojis": "high",
        "repeated_terms": ["i'd", "thank you", "please", "bruh", "lol", "passionate", "lmfaooooo"],
        "signatures": ["Thanks.", "Sorry for the inconvinience","Let me know as soon as possible"],
        "formality_index": 0.8, 
    } 

@mcp.tool(description="Gets contacts and places them in a group cluster based on contact type")
def setCluster(email: str) -> dict:
    friends = ["minionmunoz@gmail.com", "sopigum@gmail.com", "emkhutagoal@gmail.com"]
    work = ["shakeb@truehue.app", "info@nvidia.com"]
    support = ["support+id18752978@depophelp.zendesk.com"]

    if email in friends:
        return {"cluster": "friend"}
    elif email in work: 
        return {"cluster": "corporate"}
    elif email in support:
        return {"cluster": "support"}
    else:
        return {"cluster": "unknown"}


if __name__ == "__main__":
    port = int(os.environ.get("PORT", 8000))
    host = "0.0.0.0"
    
    print(f"Starting FastMCP server on {host}:{port}")
    
    mcp.run(
        transport="http",
        host=host,
        port=port,
        stateless_http=True
    )

```

### render.yaml

```yaml
services:
  - type: web
    name: fastmcp-server
    runtime: python
    buildCommand: pip install -r requirements.txt
    startCommand: python src/server.py
    plan: free
    autoDeploy: false
    envVars:
      - key: ENVIRONMENT
        value: production

```