Ntropy MCP Server

from pprint import pprint from mcp import ClientSession, StdioServerParameters from mcp.client.stdio import stdio_client import mcp.types as types import asyncio import json API_KEY = "kbcQO94XmueyTHIBw3p0SoMnV3vks3gj2kM4fYth" # Create server parameters for stdio connection server_params = StdioServerParameters( command="uv", args=["run", "--with", "mcp", "--with", "requests", "ntropy-mcp", "--api-key", API_KEY], #command="python", #args=["server.py", "--api-key", API_KEY], env=None # Optional environment variables ) # Optional: create a sampling callback async def handle_sampling_message(message: types.CreateMessageRequestParams) -> types.CreateMessageResult: return types.CreateMessageResult( role="assistant", content=types.TextContent( type="text", text="Hello, world! from model", ), model="gpt-3.5-turbo", stopReason="endTurn", ) async def run(): async with stdio_client(server_params) as (read, write): async with ClientSession(read, write, sampling_callback=handle_sampling_message) as session: # Initialize the connection await session.initialize() # List available prompts #prompts = await session.list_prompts() #print('prompts:', prompts) # # Get a prompt # prompt = await session.get_prompt("example-prompt", arguments={"arg1": "value"}) # List available resources # resources = await session.list_resources() # print('resources:', resources) # List available tools tools = await session.list_tools() print('tools:', tools) # # Read a resource # content, mime_type = await session.read_resource("file://some/path") #account_holder_id = "1234567890" account_holder_id = "35b927b6-6fda-40aa-93b8-95b47c2b2cad" # Call tools result = await session.call_tool( 'create_account_holder', arguments={ "id": account_holder_id, "type": "consumer", "name": "John Doe", } ) #print(result.content[0].text) print(result) print('---------') result = await session.call_tool( 'enrich_transaction', arguments={ "id": "1", "description": "SQ * AMAZON.COM", "date": "2021-01-01", "amount": 100.00, "entry_type": "outgoing", "currency": "USD", "account_holder_id": account_holder_id, "country": "US", } ) #print(result.content[0].text) pprint(json.loads(result.content[0].text)) print('---------') if __name__ == "__main__": asyncio.run(run())