Skip to main content
Glama

Webpage MCP Server

by brian-bfz
run_single_test.py3.75 kB
#!/usr/bin/env python3 """Run a single test with simple input/output logging""" import asyncio import logging from datetime import datetime from agents.action_generation import action_agent, input_agent, task_agent, State from agents.browser_loop import browser_loop # Configure logging logging.basicConfig( level=logging.INFO, format='%(message)s', handlers=[ logging.FileHandler('single_test.log', mode='w'), logging.StreamHandler() ] ) logger = logging.getLogger(__name__) async def main(): logger.info("="*80) logger.info("TEST: GitHub Repository Search") logger.info("="*80) logger.info("") # Create initial state state = State( action_description="search for repositories on GitHub", website_url="https://github.com" ) # STEP 1: Action Agent logger.info("STEP 1: ACTION AGENT") logger.info("") logger.info("INPUT (state):") logger.info(f" action_description: {state.action_description}") logger.info(f" website_url: {state.website_url}") logger.info("") state = await action_agent(state) logger.info("OUTPUT (state):") logger.info(f" action_description: {state.action_description}") logger.info(f" website_url: {state.website_url}") logger.info(f" function_metadata:") logger.info(f" function_name: {state.function_metadata.function_name}") logger.info(f" parameters: {[{p.name: p.type} for p in state.function_metadata.parameters]}") logger.info(f" returns: {[{r.name: r.type} for r in state.function_metadata.returns]}") logger.info("") logger.info("") # STEP 2: Task Agent logger.info("STEP 2: TASK AGENT") logger.info("") logger.info("INPUT (state):") logger.info(f" action_description: {state.action_description}") logger.info(f" website_url: {state.website_url}") logger.info(f" function_metadata.function_name: {state.function_metadata.function_name}") logger.info("") state = await task_agent(state) logger.info("OUTPUT (state):") logger.info(f" action_description: {state.action_description}") logger.info(f" website_url: {state.website_url}") logger.info(f" function_metadata.function_name: {state.function_metadata.function_name}") logger.info(f" task_description: {state.task_description}") logger.info("") logger.info("") # STEP 3: Input Agent logger.info("STEP 3: INPUT AGENT") logger.info("") logger.info("INPUT (state):") logger.info(f" function_metadata.function_name: {state.function_metadata.function_name}") logger.info(f" function_metadata.parameters: {[{p.name: p.type} for p in state.function_metadata.parameters]}") logger.info("") state = await input_agent(state) logger.info("OUTPUT (state):") logger.info(f" action_description: {state.action_description}") logger.info(f" website_url: {state.website_url}") logger.info(f" function_metadata.function_name: {state.function_metadata.function_name}") logger.info(f" task_description: {state.task_description}") logger.info(f" test_inputs: {state.test_inputs}") logger.info("") logger.info("") # STEP 4: Browser Loop Agent logger.info("STEP 4: BROWSER LOOP AGENT") logger.info("") logger.info("Running browser automation with feedback loop...") logger.info("") state = await browser_loop(state) logger.info("") logger.info("OUTPUT (state):") logger.info(f" test_results: {state.test_results}") logger.info("") logger.info("="*80) logger.info("") logger.info("FULL STATE AFTER BROWSER_LOOP:") logger.info(state.model_dump_json(indent=2)) if __name__ == "__main__": asyncio.run(main())

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/brian-bfz/fireworks2'

If you have feedback or need assistance with the MCP directory API, please join our Discord server