We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/franccesco/bloomy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
introspection.py•1.96 kB
"""GraphQL schema introspection utilities.
Functions for querying and extracting information from the GraphQL schema.
"""
from typing import List
from gql import gql
from bloomy_mcp.client import default_client
def get_available_queries() -> str:
"""Get a list of all available GraphQL queries.
Returns:
A comma-separated string of all available query names
"""
queries_list_query = gql(
"""
{
__schema {
queryType {
name
fields {
name
description
}
}
}
}
"""
)
result = default_client.execute(queries_list_query)
# Create a simple comma-separated list of query names
query_names = [field["name"] for field in result["__schema"]["queryType"]["fields"]]
return ", ".join(query_names)
def get_available_mutations() -> str:
"""Get a list of all available GraphQL mutations.
Returns:
A comma-separated string of all available mutation names
"""
mutations_list_query = gql(
"""
{
__schema {
mutationType {
name
fields {
name
description
}
}
}
}
"""
)
result = default_client.execute(mutations_list_query)
# Create a simple comma-separated list of mutation names
mutation_names = [field["name"] for field in result["__schema"]["mutationType"]["fields"]]
return ", ".join(mutation_names)
def get_available_operation_names(operation_type: str) -> List[str]:
"""Get a list of all available operation names for a given type.
Args:
operation_type: Either "query" or "mutation"
Returns:
List of available operation names
"""
if operation_type == "query":
operations_str = get_available_queries()
else:
operations_str = get_available_mutations()
return [name.strip() for name in operations_str.split(",")]