29 lines
898 B
Python
29 lines
898 B
Python
from contextlib import suppress
|
|
|
|
from mcp.server import MCPServer
|
|
from mcp.server.mcpserver import Context
|
|
from mcp.server.mcpserver.prompts import Prompt
|
|
|
|
mcp = MCPServer("Code Helper")
|
|
|
|
|
|
@mcp.prompt()
|
|
def review_code(code: str) -> str:
|
|
"""Review a piece of code."""
|
|
return f"Please review this code:\n\n{code}"
|
|
|
|
|
|
@mcp.tool()
|
|
async def save_template(name: str, instruction: str, ctx: Context) -> str:
|
|
"""Save an instruction as a prompt the user can pick from the menu."""
|
|
|
|
def template(code: str) -> str:
|
|
return f"{instruction}\n\n{code}"
|
|
|
|
with suppress(ValueError): # replace an existing entry of the same name
|
|
mcp.remove_prompt(name)
|
|
mcp.add_prompt(Prompt.from_function(template, name=name, description=instruction))
|
|
await ctx.notify_prompts_changed()
|
|
await ctx.session.send_prompt_list_changed()
|
|
return f"Saved '{name}' to the prompt menu."
|