Skip to main content

MCP Client for Python

Project description

kl-mcp-client

SDK Python để gọi MCP Browser Server qua JSON-RPC HTTP.

Cài đặt

pip install kl-mcp-client

Thành phần

  • kl_mcp_client.client.MCPClient: sync JSON-RPC client
  • kl_mcp_client.tools.MCPTools: sync tools wrapper
  • kl_mcp_client.asyncio.client.MCPClient: async JSON-RPC client
  • kl_mcp_client.asyncio.tools.MCPTools: async tools wrapper

Quickstart (sync)

from kl_mcp_client.tools import MCPTools

tools = MCPTools()
tools.connect_mcp("http://localhost:3000/mcp")

sid = tools.create_session("http://localhost:9222")['sessionId']
tools.open_page(sid, "https://example.com")
print(tools.get_html(sid))

Quickstart (async)

import asyncio
from kl_mcp_client.asyncio.tools import MCPTools

async def main():
    tools = MCPTools()
    tools.connect_mcp("http://localhost:3000/mcp")

    sid = (await tools.create_session("http://localhost:9222"))["sessionId"]
    await tools.open_page(sid, "https://example.com")
    print(await tools.get_html(sid))
    await tools.close()

asyncio.run(main())

Danh sách function (sync kl_mcp_client.tools.MCPTools)

Kết nối / core

  • connect_mcp(mcp_url=None, mcpUrl=None, headers=None, timeout=30, retries=2, proxies=None)
  • close()

Session tools

  • create_session(cdpUrl)
  • close_session(sessionId)
  • list_sessions()
  • open_page(sessionId, url)
  • get_html(sessionId)
  • click(sessionId, selector)
  • get_bounding_box(sessionId, selector)
  • click_to_text(sessionId, text)
  • click_by_node_id(sessionId, nodeId)
  • screenshot(sessionId)
  • import_cookies(sessionId, cookies)
  • click_bounding_box(sessionId, selector)
  • upload_file(sessionId, selector, file_path)
  • perform(sessionId, action, target=None, value=None, x=None, y=None, from_point=None, to_point=None)
  • wait_for_selector(sessionId, selector, timeout=None, timeoutMs=None)
  • scroll(sessionId, x=None, y=None, selector=None, position=None)
  • evaluate(sessionId, expression)
  • evaluate_stream(sessionId, expression, chunkSize=100)
  • stream_pull(stream_id, offset=0, limit=100)
  • get_cookies(sessionId)
  • parse_html_by_prompt(html, prompt)
  • viewport(sessionId, viewport=None)

Input tools

  • send_keys(sessionId, text, interval=None)
  • type(sessionId, selector, text)
  • send_text(sessionId, text, interval=None)
  • clear_all(sessionId)
  • send_combo(sessionId, text)

Tab tools

  • get_current_url(sessionId)
  • list_tabs(sessionId)
  • switch_tab(sessionId, tabId=None, targetId=None)
  • close_tab(sessionId, tabId)
  • new_tab(sessionId, url=None)
  • switch_tab_by_title(sessionId, title)
  • switch_tab_by_url(sessionId, url)
  • current_tab(sessionId)

DOM tools

  • get_dom_tree(sessionId)
  • get_clickable(sessionId)
  • selector_map(sessionId, selector)
  • get_clean_text(sessionId)

Element tools

  • find_all(sessionId, selector)
  • find_element(sessionId, selector)
  • find_element_by_xpath(sessionId, xpath)
  • find_element_xpath(sessionId, xpath)
  • find_element_by_text(sessionId, text)
  • find_element_by_prompt(sessionId, prompt)

Browser tools

  • create_browser(payload=None)
  • release_browser(pod_name)

Helper / tương thích ngược

  • cookies(sessionId)
  • current_url(sessionId)
  • set_viewport(sessionId, width, height, deviceScaleFactor=1.0, mobile=False)
  • get_viewport(sessionId)
  • drag_and_drop(sessionId, from_x, from_y, to_x, to_y)
  • hover(sessionId, x, y)
  • evaluate_stream_all(sessionId, expression, chunkSize=100, max_items=None)

Danh sách function async

kl_mcp_client.asyncio.tools.MCPTools hỗ trợ cùng API như bản sync, nhưng gọi bằng await.

Lưu ý

  • Cần gọi connect_mcp(...) trước khi gọi tools.
  • upload_file(...) dùng endpoint /upload để lấy uploadId, sau đó gọi tool uploadFile.
  • Tool name map theo server tại mcp-server/internal/interfaces/http/mcp.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kl_mcp_client-2.1.19.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kl_mcp_client-2.1.19-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file kl_mcp_client-2.1.19.tar.gz.

File metadata

  • Download URL: kl_mcp_client-2.1.19.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for kl_mcp_client-2.1.19.tar.gz
Algorithm Hash digest
SHA256 c38cbc6546a824111314e57fc86ea02bce3db58877263949d84b627a0e7f03af
MD5 90cac7f00f1c5f7a33371ce1739c6134
BLAKE2b-256 287be0a51988a78a05bc89005aac88958bde517e3855dc51e878f161c1ed4b19

See more details on using hashes here.

File details

Details for the file kl_mcp_client-2.1.19-py3-none-any.whl.

File metadata

  • Download URL: kl_mcp_client-2.1.19-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for kl_mcp_client-2.1.19-py3-none-any.whl
Algorithm Hash digest
SHA256 0cbd4db33a15eb9668e8eb0ed61db5dd1b9c21f9deb26f94fcdb0947665b26ee
MD5 ab408a3cc187d584ec0d7fe1a754b9de
BLAKE2b-256 f00b7184548092ed883b4a2dff338160536eb41e3e1b7471f1520f274db1f46f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page