Back to MCP directory
publicPublicdnsLocal runtime

jakeyShakey_umami_mcp_server

Umami Analytics MCP服务器是一个增强Claude能力的工具,通过连接Umami网站分析平台,提供用户行为分析、网站性能追踪和实时数据洞察功能。

article

README

🚀 Umami分析服务提示系统配置指南

Umami是一个功能强大的分析服务框架,支持通过自定义提示(Prompts)进行灵活扩展。本指南将详细介绍如何在src/analytics_service/server.py中实现和管理这些提示,帮助你灵活扩展Umami分析服务的功能,满足不同业务需求。

🚀 快速开始

Umami分析服务提示系统允许用户通过自定义提示来灵活扩展功能。你可以在src/analytics_service/server.py文件中进行提示的注册、逻辑实现等操作。

✨ 主要特性

  • 支持通过自定义提示(Prompts)进行灵活扩展。
  • 定义了提示、参数、消息角色和内容类型等核心概念,便于组织对话流。
  • 提供了详细的消息结构规范,确保信息传递的准确性。
  • 给出了最佳实践建议,帮助用户更好地使用提示系统。
  • 包含示例应用和高级功能,方便用户快速上手和进行功能扩展。

📦 安装指南

文档未提及安装相关内容,故跳过此章节。

💻 使用示例

基础用法

注册提示

list_prompts()函数中注册新的提示:

@app.list_prompts()
async def list_prompts():
    return [
        # 其他提示...
        {
            "name": "您的提示名称",
            "description": "您的提示描述",
            "arguments": [
                {
                    "name": "参数名称1",
                    "description": "参数描述",
                    "required": True/False
                },
                {
                    "name": "参数名称2",
                    "description": "参数描述",
                    "required": True/False
                }
            ]
        }
    ]

实现提示逻辑

get_prompt()函数中处理具体的提示请求:

@app.get_prompt()
async def get_prompt(name: str, arguments: Any):
    # 其他提示处理...
    if name == "您的提示名称":
        return {
            "messages": [
                {
                    "role": "user",
                    "content": {
                        "type": "text",
                        "text": f"您的提示模板包含 {arguments['参数名称']}"
                    }
                }
            ]
        }

高级用法

添加新提示

list_prompts()中添加:

{
    "name": "数据分析报告",
    "description": "生成数据摘要报告。",
    "arguments": [
        {
            "name": "startTime",
            "description": "开始时间。",
            "required": True
        },
        {
            "name": "endTime",
            "description": "结束时间。",
            "required": True
        }
    ]
}

实现提示处理逻辑

get_prompt()中实现:

if name == "数据分析报告":
    return {
        "messages": [
            {
                "role": "system",
                "content": {
                    "type": "text",
                    "text": f"分析从{arguments['startTime']}{arguments['endTime']}的数据。"
                }
            },
            {
                "role": "user",
                "content": {
                    "type": "resource",
                    "resource": {
                        "uri": "data://reports", 
                        "text": "请提供数据摘要。",
                        "mimeType": "application/json"
                    }
                }
            }
        ]
    }

📚 详细文档

提示系统核心概念

  • 提示:定义了特定任务的操作流程。
  • 参数:提示可以接受的输入变量。
  • 消息角色:包括"system""user""assistant",用于组织对话流。
  • 内容类型:支持"text""resource" 类型。

消息结构规范

角色定义

  • role: "system":用于设置上下文或提供高级别指令。
  • role: "user":模拟用户输入或提问。
  • role: "assistant":表示Claude的响应或指令。

内容类型规范

  • type: "text":用于纯文本内容。
  • type: "resource":包含外部资源,需提供 uritextmimeType 属性:
{
    "role": "user",
    "content": {
        "type": "resource",
        "resource": {
            "uri": "logs://recent",    // 资源标识符
            "text": "[2024-03-14 15:32:11] 错误:连接超时",
            "mimeType": "text/plain"   // MIME类型
        }
    }
}

🔧 技术细节

文档未提及技术实现细节相关内容,故跳过此章节。

📄 许可证

文档未提及许可证相关内容,故跳过此章节。

💡 使用建议

  • 专注与具体:确保提示针对特定任务。
  • 明确参数验证:定义清晰的输入要求。
  • 使用保留术语:如Prompts建议翻译为“提示”或“提示系统”。
  • 保持代码示例完整:确保变量名和语法正确无误。

⚙️ 高级功能

  • 错误处理:在get_prompt()中添加异常捕捉,确保提示失败时有明确反馈。
  • 日志记录:记录所有提示请求和响应,便于调试和分析。
help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client