{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"smithery_thorrevoets-bw","slug":"thorrevoets-bw","name":"bw","type":"mcp","url":"https://smithery.ai/servers/thorrevoets/bw","page_url":"https://unfragile.ai/thorrevoets-bw","categories":["mcp-servers"],"tags":["mcp","model-context-protocol","smithery:thorrevoets/bw"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"smithery_thorrevoets-bw__cap_0","uri":"capability://tool.use.integration.schema.based.function.calling.with.multi.provider.support","name":"schema-based function calling with multi-provider support","description":"This capability enables the server to call functions defined in a schema, allowing seamless integration with multiple AI model providers. It uses a registry pattern to manage function definitions and their respective APIs, ensuring that developers can easily switch between providers like OpenAI and Anthropic without changing their codebase. The architecture supports dynamic loading of functions based on the schema, which allows for flexible and scalable integrations.","intents":["How can I easily switch between different AI model providers in my application?","I need a way to define and call functions from various APIs without rewriting code.","Can I integrate multiple AI services in a single workflow?"],"best_for":["developers building applications that require multi-provider AI integrations"],"limitations":["Requires explicit schema definitions for each function, which can increase initial setup time.","Performance may vary based on the responsiveness of the external APIs."],"requires":["Node.js 18+","API keys for the respective AI providers"],"input_types":["structured data","text"],"output_types":["structured data","text"],"categories":["tool-use-integration","api orchestration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_thorrevoets-bw__cap_1","uri":"capability://memory.knowledge.contextual.state.management.for.ai.interactions","name":"contextual state management for ai interactions","description":"This capability manages the context of interactions with AI models by maintaining a session-based state that can be referenced across multiple API calls. It employs a context stack pattern that allows the server to push and pop context as needed, ensuring that each interaction is aware of previous exchanges. This design choice enhances the coherence of conversations and task execution across different model calls.","intents":["How can I maintain context across multiple interactions with an AI model?","I want to ensure that my AI application remembers previous user inputs.","Can I manage conversation history effectively in my AI-driven application?"],"best_for":["developers creating conversational agents or interactive AI applications"],"limitations":["Context size is limited by the underlying model's token capacity, which may truncate longer histories.","Requires careful management of context to avoid information overload."],"requires":["Node.js 18+","API keys for the AI models being used"],"input_types":["text"],"output_types":["text"],"categories":["memory-knowledge","context management"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_thorrevoets-bw__cap_2","uri":"capability://automation.workflow.dynamic.api.orchestration.for.ai.workflows","name":"dynamic api orchestration for ai workflows","description":"This capability allows for the orchestration of multiple API calls in a defined workflow, enabling complex interactions with various AI services. It uses a directed acyclic graph (DAG) pattern to define dependencies between tasks, ensuring that API calls are executed in the correct order based on their interdependencies. This architecture supports both synchronous and asynchronous execution, providing flexibility in how workflows are managed.","intents":["How can I create complex workflows that involve multiple AI services?","I need to ensure that API calls are executed in a specific order based on their dependencies.","Can I manage both synchronous and asynchronous API interactions in my application?"],"best_for":["teams building sophisticated AI-driven applications requiring complex workflows"],"limitations":["Increased complexity in workflow definitions can lead to longer development times.","Debugging workflows may be challenging due to their asynchronous nature."],"requires":["Node.js 18+","API keys for the AI services involved"],"input_types":["structured data"],"output_types":["structured data","text"],"categories":["automation-workflow","api orchestration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":23,"verified":false,"data_access_risk":"moderate","permissions":["Node.js 18+","API keys for the respective AI providers","API keys for the AI models being used","API keys for the AI services involved"],"failure_modes":["Requires explicit schema definitions for each function, which can increase initial setup time.","Performance may vary based on the responsiveness of the external APIs.","Context size is limited by the underlying model's token capacity, which may truncate longer histories.","Requires careful management of context to avoid information overload.","Increased complexity in workflow definitions can lead to longer development times.","Debugging workflows may be challenging due to their asynchronous nature.","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.16,"ecosystem":0.38999999999999996,"match_graph":0.25,"freshness":0.5,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:28.139Z","last_scraped_at":"2026-05-03T15:19:25.721Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=thorrevoets-bw","compare_url":"https://unfragile.ai/compare?artifact=thorrevoets-bw"}},"signature":"UII9s+4EuT4O2CHrQqlehdQ9varTgELaMJF7Q1aF5iHeZ0NfjBgmKyN/mIFNeRP8Vax18BUg/mUKEpB8y59qAQ==","signedAt":"2026-07-09T22:27:09.831Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/thorrevoets-bw","artifact":"https://unfragile.ai/thorrevoets-bw","verify":"https://unfragile.ai/api/v1/verify?slug=thorrevoets-bw","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}