Library to connect to TigerGraph databases
Project description
pyTigerGraph
pyTigerGraph is a Python client for TigerGraph databases. It wraps the REST++ and GSQL APIs and provides both a synchronous and an asynchronous interface.
Full documentation: https://docs.tigergraph.com/pytigergraph/current/intro/
Installation
Base package
pip install pyTigerGraph
Optional extras
| Extra | What it adds | Install command |
|---|---|---|
gds |
Graph Data Science — data loaders for PyTorch Geometric, DGL, and Pandas | pip install 'pyTigerGraph[gds]' |
mcp |
Model Context Protocol server — installs pyTigerGraph-mcp (convenience alias) |
pip install 'pyTigerGraph[mcp]' |
fast |
orjson JSON backend — 2–10× faster parsing, releases the GIL under concurrent load | pip install 'pyTigerGraph[fast]' |
Extras can be combined:
pip install 'pyTigerGraph[fast,gds,mcp]'
[gds] prerequisites
Install torch before installing the gds extra:
- Install Torch
- Optionally Install PyTorch Geometric or Install DGL
pip install 'pyTigerGraph[gds]'
[fast] — orjson JSON backend
orjson is a Rust-backed JSON library that is detected and used automatically when installed. No code changes are required. It improves throughput in two ways:
- Faster parsing — 2–10× vs stdlib
json - GIL release — threads parse responses concurrently instead of serialising on the GIL
If orjson is not installed the library falls back to stdlib json transparently.
Quickstart
Synchronous connection
from pyTigerGraph import TigerGraphConnection
conn = TigerGraphConnection(
host="http://localhost",
graphname="my_graph",
username="tigergraph",
password="tigergraph",
)
print(conn.echo())
Use as a context manager to ensure the underlying HTTP session is closed:
with TigerGraphConnection(host="http://localhost", graphname="my_graph") as conn:
result = conn.runInstalledQuery("my_query", {"param": "value"})
Asynchronous connection
AsyncTigerGraphConnection exposes the same API as TigerGraphConnection but with async/await syntax. It uses aiohttp internally and shares a single connection pool across all concurrent tasks, making it significantly more efficient than threaded sync code at high concurrency.
import asyncio
from pyTigerGraph import AsyncTigerGraphConnection
async def main():
async with AsyncTigerGraphConnection(
host="http://localhost",
graphname="my_graph",
username="tigergraph",
password="tigergraph",
) as conn:
result = await conn.runInstalledQuery("my_query", {"param": "value"})
print(result)
asyncio.run(main())
Token-based authentication
conn = TigerGraphConnection(
host="http://localhost",
graphname="my_graph",
gsqlSecret="my_secret", # generates a session token automatically
)
HTTPS / TigerGraph Cloud
conn = TigerGraphConnection(
host="https://my-instance.i.tgcloud.io",
graphname="my_graph",
username="tigergraph",
password="tigergraph",
tgCloud=True,
)
Connection parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
host |
str |
"http://127.0.0.1" |
Server URL including scheme (http:// or https://) |
graphname |
str |
"" |
Target graph name |
username |
str |
"tigergraph" |
Database username |
password |
str |
"tigergraph" |
Database password |
gsqlSecret |
str |
"" |
GSQL secret for token-based auth (preferred over username/password) |
apiToken |
str |
"" |
Pre-obtained REST++ API token |
jwtToken |
str |
"" |
JWT token for customer-managed authentication |
restppPort |
int|str |
"9000" |
REST++ port (auto-fails over to 14240/restpp for TigerGraph 4.x) |
gsPort |
int|str |
"14240" |
GSQL server port |
certPath |
str |
None |
Path to CA certificate for HTTPS |
tgCloud |
bool |
False |
Set to True for TigerGraph Cloud instances |
Performance notes
Synchronous mode (TigerGraphConnection)
- Each thread gets its own dedicated HTTP session and connection pool, so concurrent threads never block each other.
- Install
pyTigerGraph[fast]to activate theorjsonbackend and reduce JSON parsing overhead under concurrent load. - Use
ThreadPoolExecutorto run queries in parallel:
from concurrent.futures import ThreadPoolExecutor, as_completed
with TigerGraphConnection(...) as conn:
with ThreadPoolExecutor(max_workers=16) as executor:
futures = [executor.submit(conn.runInstalledQuery, "q", {"p": v}) for v in values]
for f in as_completed(futures):
print(f.result())
Asynchronous mode (AsyncTigerGraphConnection)
- Uses a single
aiohttp.ClientSessionwith an unbounded connection pool shared across all concurrent coroutines — no GIL, no thread-scheduling overhead. - Typically achieves higher QPS and lower tail latency than the threaded sync mode for I/O-bound workloads.
import asyncio
from pyTigerGraph import AsyncTigerGraphConnection
async def main():
async with AsyncTigerGraphConnection(...) as conn:
tasks = [conn.runInstalledQuery("q", {"p": v}) for v in values]
results = await asyncio.gather(*tasks)
asyncio.run(main())
Graph Data Science (GDS)
The gds sub-module provides data loaders that stream vertex and edge data from TigerGraph directly into PyTorch Geometric, DGL, or Pandas DataFrames for machine learning workflows.
Install requirements, then access via conn.gds:
conn = TigerGraphConnection(host="...", graphname="...")
loader = conn.gds.vertexLoader(attributes=["feat", "label"], batch_size=1024)
for batch in loader:
train(batch)
See the GDS documentation for full details.
MCP Server
The TigerGraph MCP server is now a standalone package: pyTigerGraph-mcp. It exposes TigerGraph operations as tools for AI agents and LLM applications (Claude Desktop, Cursor, Copilot, etc.).
# Recommended — install the standalone package directly
pip install pyTigerGraph-mcp
# Or via the pyTigerGraph convenience alias (installs pyTigerGraph-mcp automatically)
pip install 'pyTigerGraph[mcp]'
# Start the server (reads connection config from environment variables)
tigergraph-mcp
For full setup instructions, available tools, configuration examples, and multi-profile support, see the pyTigerGraph-mcp README.
Migrating from
pyTigerGraph.mcp? Update your imports:# Old from pyTigerGraph.mcp import serve, ConnectionManager # New from tigergraph_mcp import serve, ConnectionManager
Getting started video
Companion notebook: Google Colab
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pytigergraph-2.0.2.tar.gz.
File metadata
- Download URL: pytigergraph-2.0.2.tar.gz
- Upload date:
- Size: 361.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b92ab1707b75c3046214f42c38158ed16ad7683cd9687f409f95e621bcd6a53e
|
|
| MD5 |
9ca89be836b1485dfaccbb9d8cd0810d
|
|
| BLAKE2b-256 |
b38a4be9826bc8100d63ecdfc644112f80530d26dfbe132468630b964e9b6d4f
|
File details
Details for the file pytigergraph-2.0.2-py3-none-any.whl.
File metadata
- Download URL: pytigergraph-2.0.2-py3-none-any.whl
- Upload date:
- Size: 350.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
179bf53f8075c8f8182752f6cf55dfd860787becb982cdff384269bea2724aa6
|
|
| MD5 |
fc99b750404985ede78d2d843ac07349
|
|
| BLAKE2b-256 |
6e2304576c87c7b205d2f82980dd5d9971cf74d96cd86d9e3878060342d1b1a1
|