iflow-mcp-mikeskarl-mcp-prompt-templates 0.1.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- __main__.py +113 -0
- iflow_mcp_mikeskarl_mcp_prompt_templates-0.1.5.dist-info/METADATA +62 -0
- iflow_mcp_mikeskarl_mcp_prompt_templates-0.1.5.dist-info/RECORD +10 -0
- iflow_mcp_mikeskarl_mcp_prompt_templates-0.1.5.dist-info/WHEEL +4 -0
- templates/meeting_analysis/config.yaml +19 -0
- templates/meeting_analysis/template.md +51 -0
- templates/meeting_summary/config.yaml +19 -0
- templates/meeting_summary/template.md +34 -0
- templates/webinar_blog/config.yaml +22 -0
- templates/webinar_blog/template.md +44 -0
__main__.py
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
from mcp.server import Server, NotificationOptions
|
|
2
|
+
from mcp.server.models import InitializationOptions
|
|
3
|
+
import mcp.server.stdio
|
|
4
|
+
import mcp.types as types
|
|
5
|
+
import yaml
|
|
6
|
+
import os
|
|
7
|
+
import asyncio
|
|
8
|
+
|
|
9
|
+
class TemplateServer(Server):
|
|
10
|
+
def __init__(self):
|
|
11
|
+
super().__init__("analysis-template-server")
|
|
12
|
+
self.templates = self._load_templates()
|
|
13
|
+
|
|
14
|
+
def _load_templates(self):
|
|
15
|
+
templates = {}
|
|
16
|
+
template_dir = os.path.join(os.path.dirname(__file__), 'templates')
|
|
17
|
+
|
|
18
|
+
for category in os.listdir(template_dir):
|
|
19
|
+
category_path = os.path.join(template_dir, category)
|
|
20
|
+
if os.path.isdir(category_path):
|
|
21
|
+
# Load config
|
|
22
|
+
with open(os.path.join(category_path, 'config.yaml'), 'r') as f:
|
|
23
|
+
config = yaml.safe_load(f)
|
|
24
|
+
|
|
25
|
+
# Load template
|
|
26
|
+
with open(os.path.join(category_path, 'template.md'), 'r') as f:
|
|
27
|
+
template = f.read()
|
|
28
|
+
|
|
29
|
+
templates[category] = {
|
|
30
|
+
'config': config,
|
|
31
|
+
'template': template
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return templates
|
|
35
|
+
|
|
36
|
+
server = TemplateServer()
|
|
37
|
+
|
|
38
|
+
@server.list_tools()
|
|
39
|
+
async def handle_list_tools() -> list[types.Tool]:
|
|
40
|
+
"""List available analysis template tools"""
|
|
41
|
+
tools = []
|
|
42
|
+
for name, template in server.templates.items():
|
|
43
|
+
tools.append(
|
|
44
|
+
types.Tool(
|
|
45
|
+
name=name,
|
|
46
|
+
description=template['config']['description'],
|
|
47
|
+
inputSchema={
|
|
48
|
+
"type": "object",
|
|
49
|
+
"properties": {}
|
|
50
|
+
}
|
|
51
|
+
)
|
|
52
|
+
)
|
|
53
|
+
return tools
|
|
54
|
+
|
|
55
|
+
@server.list_prompts()
|
|
56
|
+
async def handle_list_prompts() -> list[types.Prompt]:
|
|
57
|
+
prompts = []
|
|
58
|
+
for name, template in server.templates.items():
|
|
59
|
+
prompts.append(
|
|
60
|
+
types.Prompt(
|
|
61
|
+
name=name,
|
|
62
|
+
description=template['config']['description'],
|
|
63
|
+
arguments=template['config']['arguments']
|
|
64
|
+
)
|
|
65
|
+
)
|
|
66
|
+
return prompts
|
|
67
|
+
|
|
68
|
+
@server.get_prompt()
|
|
69
|
+
async def handle_get_prompt(
|
|
70
|
+
name: str,
|
|
71
|
+
arguments: dict[str, str] | None
|
|
72
|
+
) -> types.GetPromptResult:
|
|
73
|
+
if name not in server.templates:
|
|
74
|
+
raise ValueError(f"Unknown template: {name}")
|
|
75
|
+
|
|
76
|
+
template = server.templates[name]
|
|
77
|
+
formatted_template = template['template']
|
|
78
|
+
|
|
79
|
+
# Replace placeholders with arguments
|
|
80
|
+
if arguments:
|
|
81
|
+
for key, value in arguments.items():
|
|
82
|
+
formatted_template = formatted_template.replace(f"{{{{ {key} }}}}", value)
|
|
83
|
+
|
|
84
|
+
return types.GetPromptResult(
|
|
85
|
+
description=template['config']['description'],
|
|
86
|
+
messages=[
|
|
87
|
+
types.PromptMessage(
|
|
88
|
+
role="user",
|
|
89
|
+
content=types.TextContent(
|
|
90
|
+
type="text",
|
|
91
|
+
text=formatted_template
|
|
92
|
+
)
|
|
93
|
+
)
|
|
94
|
+
]
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
async def main():
|
|
98
|
+
async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
|
|
99
|
+
await server.run(
|
|
100
|
+
read_stream,
|
|
101
|
+
write_stream,
|
|
102
|
+
InitializationOptions(
|
|
103
|
+
server_name="analysis-templates",
|
|
104
|
+
server_version="0.1.5",
|
|
105
|
+
capabilities=server.get_capabilities(
|
|
106
|
+
notification_options=NotificationOptions(),
|
|
107
|
+
experimental_capabilities={}
|
|
108
|
+
)
|
|
109
|
+
)
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
if __name__ == "__main__":
|
|
113
|
+
asyncio.run(main())
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: iflow-mcp-mikeskarl-mcp-prompt-templates
|
|
3
|
+
Version: 0.1.5
|
|
4
|
+
Summary: An MCP server for managing and serving analysis templates and prompt chains
|
|
5
|
+
Requires-Python: >=3.11
|
|
6
|
+
Requires-Dist: anyio
|
|
7
|
+
Requires-Dist: mcp>=0.9.0
|
|
8
|
+
Requires-Dist: pyyaml
|
|
9
|
+
Description-Content-Type: text/markdown
|
|
10
|
+
|
|
11
|
+
# MCP Analysis Templates
|
|
12
|
+
|
|
13
|
+
An MCP server for managing and serving analysis templates and prompt chains.
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
This repository contains a Model Context Protocol (MCP) server implementation that provides standardized templates for various types of content analysis:
|
|
18
|
+
|
|
19
|
+
- Meeting Analysis (detailed meeting minutes and action items)
|
|
20
|
+
- Meeting Summary (executive-style brief summary)
|
|
21
|
+
- Webinar to Blog Post conversion
|
|
22
|
+
|
|
23
|
+
## Structure
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
mcp-analysis-templates/
|
|
27
|
+
├── README.md
|
|
28
|
+
├── requirements.txt
|
|
29
|
+
├── server.py
|
|
30
|
+
├── config.yaml
|
|
31
|
+
├── templates/
|
|
32
|
+
│ ├── meeting_analysis/
|
|
33
|
+
│ │ ├── template.md
|
|
34
|
+
│ │ └── config.yaml
|
|
35
|
+
│ ├── meeting_summary/
|
|
36
|
+
│ │ ├── template.md
|
|
37
|
+
│ │ └── config.yaml
|
|
38
|
+
│ └── webinar_blog/
|
|
39
|
+
├── template.md
|
|
40
|
+
└── config.yaml
|
|
41
|
+
└── docs/
|
|
42
|
+
├── setup.md
|
|
43
|
+
└── usage.md
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Setup
|
|
47
|
+
|
|
48
|
+
1. Install dependencies:
|
|
49
|
+
```bash
|
|
50
|
+
pip install -r requirements.txt
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
2. Run the server:
|
|
54
|
+
```bash
|
|
55
|
+
python server.py
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Usage
|
|
59
|
+
|
|
60
|
+
The server provides templates through the MCP protocol. Connect to it using any MCP client to access the templates.
|
|
61
|
+
|
|
62
|
+
See the docs directory for detailed setup and usage instructions.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
__main__.py,sha256=ThMvp9gLMRvfcQi9-RJ5H6-Fa17RCjb9ATxDI1Pvgqg,3482
|
|
2
|
+
templates/meeting_analysis/config.yaml,sha256=mG1foG041C_xm_OdnMDLuwioWYnYPbP1vwF6vQfG2Dw,605
|
|
3
|
+
templates/meeting_analysis/template.md,sha256=BZ-3RFAJ3UXcj5-B438bs9x6_spbs-CqTjQCSOoqztQ,1686
|
|
4
|
+
templates/meeting_summary/config.yaml,sha256=8ZXFQgom-p5_AU2HfU4kK55U0NtudW_BX2sm9B5CCyg,547
|
|
5
|
+
templates/meeting_summary/template.md,sha256=kbdtrZ_HmJ8NWpmmFTo9hSZbcdEh67ljkNp8z3FCFBA,879
|
|
6
|
+
templates/webinar_blog/config.yaml,sha256=pV6rh7-b4HroQEAvGUnED8Q8-oz4YBcV_yOfuVJl01E,633
|
|
7
|
+
templates/webinar_blog/template.md,sha256=pIY3xLbKKa0zjKbhJQHnQccvKl5uhLhVpaPBIODilEw,1151
|
|
8
|
+
iflow_mcp_mikeskarl_mcp_prompt_templates-0.1.5.dist-info/METADATA,sha256=QQXC1F-iy0vVuDz4qaSUZV-IaiMdRQ7dtNLDSfhUSiw,1554
|
|
9
|
+
iflow_mcp_mikeskarl_mcp_prompt_templates-0.1.5.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
10
|
+
iflow_mcp_mikeskarl_mcp_prompt_templates-0.1.5.dist-info/RECORD,,
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
description: "Comprehensive meeting analysis template for detailed minutes and action items"
|
|
2
|
+
version: "1.0"
|
|
3
|
+
arguments:
|
|
4
|
+
- name: "meeting_date"
|
|
5
|
+
description: "Date of the meeting"
|
|
6
|
+
required: true
|
|
7
|
+
- name: "meeting_title"
|
|
8
|
+
description: "Title or subject of the meeting"
|
|
9
|
+
required: true
|
|
10
|
+
- name: "transcript"
|
|
11
|
+
description: "Full meeting transcript to analyze"
|
|
12
|
+
required: true
|
|
13
|
+
metadata:
|
|
14
|
+
tags:
|
|
15
|
+
- meetings
|
|
16
|
+
- analysis
|
|
17
|
+
- minutes
|
|
18
|
+
suggested_use: "Use for important strategic meetings, client meetings, or any meeting requiring detailed documentation"
|
|
19
|
+
output_format: "markdown"
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Meeting Analysis Template
|
|
2
|
+
|
|
3
|
+
You are an Executive Assistant working for a global infrastructure consultancy. Your task is to analyze the following meeting transcript with exceptional attention to detail and organizational skills.
|
|
4
|
+
|
|
5
|
+
Meeting Information:
|
|
6
|
+
Date: {{ meeting_date }}
|
|
7
|
+
Title: {{ meeting_title }}
|
|
8
|
+
|
|
9
|
+
Transcript:
|
|
10
|
+
{{ transcript }}
|
|
11
|
+
|
|
12
|
+
Please provide a comprehensive analysis using the following structure:
|
|
13
|
+
|
|
14
|
+
## 1. Executive Summary
|
|
15
|
+
- Provide a concise overview of the meeting's purpose and outcomes
|
|
16
|
+
- Highlight the most important strategic decisions
|
|
17
|
+
- Include critical insights from the discussion
|
|
18
|
+
|
|
19
|
+
## 2. Detailed Minutes
|
|
20
|
+
- Structure the minutes by topic/agenda item
|
|
21
|
+
- Include attendees and their roles
|
|
22
|
+
- Summarize key discussions
|
|
23
|
+
- Document all decisions made
|
|
24
|
+
- List action items with assignees and deadlines
|
|
25
|
+
|
|
26
|
+
## 3. Key Decisions & Action Items
|
|
27
|
+
- Enumerate all decisions made during the meeting
|
|
28
|
+
- List action items in a structured format:
|
|
29
|
+
* Who is responsible
|
|
30
|
+
* What needs to be done
|
|
31
|
+
* When it needs to be completed
|
|
32
|
+
* Any dependencies or resources needed
|
|
33
|
+
|
|
34
|
+
## 4. Risk Analysis
|
|
35
|
+
- Identify potential risks or challenges mentioned
|
|
36
|
+
- Note opportunities discussed
|
|
37
|
+
- Highlight areas needing further discussion or clarification
|
|
38
|
+
|
|
39
|
+
## 5. Individual Contributions
|
|
40
|
+
- Summarize key points made by each participant
|
|
41
|
+
- Note any commitments or responsibilities taken on
|
|
42
|
+
- Highlight expertise or insights shared
|
|
43
|
+
|
|
44
|
+
Please format your response using clean markdown with appropriate headers and bullet points.
|
|
45
|
+
|
|
46
|
+
Remember to:
|
|
47
|
+
- Be objective and factual
|
|
48
|
+
- Capture both explicit and implicit information
|
|
49
|
+
- Maintain professional language
|
|
50
|
+
- Highlight strategic implications
|
|
51
|
+
- Note any follow-up requirements
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
description: "Brief executive summary template for meeting highlights and key decisions"
|
|
2
|
+
version: "1.0"
|
|
3
|
+
arguments:
|
|
4
|
+
- name: "meeting_date"
|
|
5
|
+
description: "Date of the meeting"
|
|
6
|
+
required: true
|
|
7
|
+
- name: "meeting_title"
|
|
8
|
+
description: "Title or subject of the meeting"
|
|
9
|
+
required: true
|
|
10
|
+
- name: "transcript"
|
|
11
|
+
description: "Full meeting transcript to analyze"
|
|
12
|
+
required: true
|
|
13
|
+
metadata:
|
|
14
|
+
tags:
|
|
15
|
+
- meetings
|
|
16
|
+
- summary
|
|
17
|
+
- executive
|
|
18
|
+
suggested_use: "Use for quick summaries and executive briefings"
|
|
19
|
+
output_format: "markdown"
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Meeting Summary Template
|
|
2
|
+
|
|
3
|
+
As an Executive Assistant, please provide a concise executive summary of this meeting. Focus on key points, decisions, and action items.
|
|
4
|
+
|
|
5
|
+
Meeting Information:
|
|
6
|
+
Date: {{ meeting_date }}
|
|
7
|
+
Title: {{ meeting_title }}
|
|
8
|
+
|
|
9
|
+
Transcript:
|
|
10
|
+
{{ transcript }}
|
|
11
|
+
|
|
12
|
+
Please provide a brief summary using the following structure:
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
- Meeting purpose and context
|
|
16
|
+
- Key participants
|
|
17
|
+
- Main topics covered
|
|
18
|
+
|
|
19
|
+
## Key Decisions
|
|
20
|
+
- List major decisions made
|
|
21
|
+
- Note any strategic direction changes
|
|
22
|
+
- Highlight important agreements
|
|
23
|
+
|
|
24
|
+
## Action Items
|
|
25
|
+
- List critical next steps
|
|
26
|
+
- Include responsible parties and deadlines
|
|
27
|
+
- Note any dependencies
|
|
28
|
+
|
|
29
|
+
## Follow-up Required
|
|
30
|
+
- List items needing additional discussion
|
|
31
|
+
- Note scheduled follow-up meetings
|
|
32
|
+
- Highlight pending decisions
|
|
33
|
+
|
|
34
|
+
Keep the summary concise and focused on the most important points. Use clear, professional language.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
description: "Template for converting webinar transcripts into engaging blog posts"
|
|
2
|
+
version: "1.0"
|
|
3
|
+
arguments:
|
|
4
|
+
- name: "webinar_title"
|
|
5
|
+
description: "Title of the webinar"
|
|
6
|
+
required: true
|
|
7
|
+
- name: "webinar_date"
|
|
8
|
+
description: "Date of the webinar"
|
|
9
|
+
required: true
|
|
10
|
+
- name: "speakers"
|
|
11
|
+
description: "Names and titles of webinar speakers"
|
|
12
|
+
required: true
|
|
13
|
+
- name: "transcript"
|
|
14
|
+
description: "Full webinar transcript"
|
|
15
|
+
required: true
|
|
16
|
+
metadata:
|
|
17
|
+
tags:
|
|
18
|
+
- webinar
|
|
19
|
+
- blog
|
|
20
|
+
- content
|
|
21
|
+
suggested_use: "Use for creating blog content from recorded webinars and presentations"
|
|
22
|
+
output_format: "markdown"
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Webinar to Blog Post Template
|
|
2
|
+
|
|
3
|
+
You are a content specialist tasked with converting a webinar transcript into an engaging blog post. Maintain the educational value while making the content more readable and web-friendly.
|
|
4
|
+
|
|
5
|
+
Webinar Information:
|
|
6
|
+
Title: {{ webinar_title }}
|
|
7
|
+
Date: {{ webinar_date }}
|
|
8
|
+
Speakers: {{ speakers }}
|
|
9
|
+
|
|
10
|
+
Transcript:
|
|
11
|
+
{{ transcript }}
|
|
12
|
+
|
|
13
|
+
Please convert this webinar into a blog post using the following structure:
|
|
14
|
+
|
|
15
|
+
## Title [Create an engaging blog title]
|
|
16
|
+
|
|
17
|
+
## Introduction
|
|
18
|
+
- Hook the reader's attention
|
|
19
|
+
- Provide context about the webinar
|
|
20
|
+
- Preview the key takeaways
|
|
21
|
+
|
|
22
|
+
## Main Content
|
|
23
|
+
Divide the content into 3-5 main sections, each with:
|
|
24
|
+
- Clear subheadings
|
|
25
|
+
- Key points from the webinar
|
|
26
|
+
- Supporting examples or case studies
|
|
27
|
+
- Expert quotes from speakers
|
|
28
|
+
|
|
29
|
+
## Key Takeaways
|
|
30
|
+
- List 3-5 main lessons or insights
|
|
31
|
+
- Include actionable tips
|
|
32
|
+
- Highlight unique perspectives
|
|
33
|
+
|
|
34
|
+
## Conclusion
|
|
35
|
+
- Summarize the main points
|
|
36
|
+
- Call to action
|
|
37
|
+
- Additional resources
|
|
38
|
+
|
|
39
|
+
Formatting Guidelines:
|
|
40
|
+
- Use short paragraphs
|
|
41
|
+
- Include bullet points for lists
|
|
42
|
+
- Break up text with subheadings
|
|
43
|
+
- Incorporate speaker quotes
|
|
44
|
+
- Add transition sentences between sections
|