Get a prompt by name with arguments.
(
self, name: str, arguments: dict[str, Any] | None = None, context: Context[LifespanResultT, Any] | None = None
)
| 1078 | ] |
| 1079 | |
| 1080 | async def get_prompt( |
| 1081 | self, name: str, arguments: dict[str, Any] | None = None, context: Context[LifespanResultT, Any] | None = None |
| 1082 | ) -> GetPromptResult: |
| 1083 | """Get a prompt by name with arguments.""" |
| 1084 | if context is None: |
| 1085 | context = Context(mcp_server=self) |
| 1086 | try: |
| 1087 | prompt = self._prompt_manager.get_prompt(name) |
| 1088 | if not prompt: |
| 1089 | raise ValueError(f"Unknown prompt: {name}") |
| 1090 | |
| 1091 | messages = await prompt.render(arguments, context) |
| 1092 | |
| 1093 | return GetPromptResult( |
| 1094 | description=prompt.description, |
| 1095 | messages=pydantic_core.to_jsonable_python(messages), |
| 1096 | ) |
| 1097 | except Exception as e: |
| 1098 | logger.exception(f"Error getting prompt {name}") |
| 1099 | raise ValueError(str(e)) from e |