Ntropy MCP Server
by smithery-ai
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())