We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NehharShah/mcp-subconscios'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
"""MCP tools for persona management."""
from typing import Any, Dict
from mcp.types import Tool as MCPTool
from ._core.base import EnvironmentTokenProvider
from ._core.handlers import (
generate_personas as _generate_personas,
)
from ._core.handlers import (
get_experiment_personas as _get_experiment_personas,
)
def generate_personas_tool() -> MCPTool:
"""Generate synthetic personas for experiments."""
return MCPTool(
name="generate_personas",
description=(
"Generate synthetic personas based on experiment configuration. "
"Returns persona definitions that can be used in experiments."
),
inputSchema={
"type": "object",
"properties": {
"run_id": {
"type": "string",
"description": "The experiment run ID",
},
"count": {
"type": "integer",
"description": "Number of personas to generate",
"default": 5,
"minimum": 1,
"maximum": 20,
},
},
"required": ["run_id"],
},
)
async def handle_generate_personas(arguments: Dict[str, Any]) -> Dict[str, Any]:
"""Handle generate_personas tool execution."""
result = await _generate_personas(arguments, EnvironmentTokenProvider())
return result.to_dict()
def get_experiment_personas_tool() -> MCPTool:
"""Get personas from a completed experiment."""
return MCPTool(
name="get_experiment_personas",
description=(
"Retrieve synthetic personas generated for a specific experiment. "
"Returns persona descriptions and demographics."
),
inputSchema={
"type": "object",
"properties": {
"run_id": {
"type": "string",
"description": "The experiment run ID",
}
},
"required": ["run_id"],
},
)
async def handle_get_experiment_personas(arguments: Dict[str, Any]) -> Dict[str, Any]:
"""Handle get_experiment_personas tool execution."""
result = await _get_experiment_personas(arguments, EnvironmentTokenProvider())
return result.to_dict()