StackOne AI provides a unified interface for accessing various SaaS tools through AI-friendly APIs.
- Unified interface for multiple SaaS tools
- AI-friendly tool descriptions and parameters
- Tool Calling: Direct method calling with
tool.call()
for intuitive usage - Glob Pattern Filtering: Advanced tool filtering with patterns like
"hris_*"
and exclusions"!hris_delete_*"
- Meta Tools (Beta): Dynamic tool discovery and execution based on natural language queries
- Integration with popular AI frameworks:
- OpenAI Functions
- LangChain Tools
- CrewAI Tools
- LangGraph Tool Node
- Python 3.9+ (core SDK functionality)
- Python 3.10+ (for MCP server and CrewAI examples)
pip install stackone-ai
# Or with uv
uv add stackone-ai
# Install with MCP server support (requires Python 3.10+)
uv add 'stackone-ai[mcp]'
# or
pip install 'stackone-ai[mcp]'
# Install with CrewAI examples (requires Python 3.10+)
uv add 'stackone-ai[examples]'
# or
pip install 'stackone-ai[examples]'
# Install everything
uv add 'stackone-ai[mcp,examples]'
# or
pip install 'stackone-ai[mcp,examples]'
from stackone_ai import StackOneToolSet
# Initialize with API key
toolset = StackOneToolSet() # Uses STACKONE_API_KEY env var
# Or explicitly: toolset = StackOneToolSet(api_key="your-api-key")
# Get HRIS-related tools with glob patterns
tools = toolset.get_tools("hris_*", account_id="your-account-id")
# Exclude certain tools with negative patterns
tools = toolset.get_tools(["hris_*", "!hris_delete_*"])
# Use a specific tool with the new call method
employee_tool = tools.get_tool("hris_get_employee")
# Call with keyword arguments
employee = employee_tool.call(id="employee-id")
# Or with traditional execute method
employee = employee_tool.execute({"id": "employee-id"})
LangChain Integration
StackOne tools work seamlessly with LangChain, enabling powerful AI agent workflows:
from langchain_openai import ChatOpenAI
from stackone_ai import StackOneToolSet
# Initialize StackOne tools
toolset = StackOneToolSet()
tools = toolset.get_tools("hris_*", account_id="your-account-id")
# Convert to LangChain format
langchain_tools = tools.to_langchain()
# Use with LangChain models
model = ChatOpenAI(model="gpt-4o-mini")
model_with_tools = model.bind_tools(langchain_tools)
# Execute AI-driven tool calls
response = model_with_tools.invoke("Get employee information for ID: emp123")
# Handle tool calls
for tool_call in response.tool_calls:
tool = tools.get_tool(tool_call["name"])
if tool:
result = tool.execute(tool_call["args"])
print(f"Result: {result}")
CrewAI Integration (Python 3.10+)
CrewAI uses LangChain tools natively, making integration seamless:
Note: CrewAI requires Python 3.10+. Install with
pip install 'stackone-ai[examples]'
from crewai import Agent, Crew, Task
from stackone_ai import StackOneToolSet
# Get tools and convert to LangChain format
toolset = StackOneToolSet()
tools = toolset.get_tools("hris_*", account_id="your-account-id")
langchain_tools = tools.to_langchain()
# Create CrewAI agent with StackOne tools
agent = Agent(
role="HR Manager",
goal="Analyze employee data and generate insights",
backstory="Expert in HR analytics and employee management",
tools=langchain_tools,
llm="gpt-4o-mini"
)
# Define task and execute
task = Task(
description="Find all employees in the engineering department",
agent=agent,
expected_output="List of engineering employees with their details"
)
crew = Crew(agents=[agent], tasks=[task])
result = crew.kickoff()
Meta tools enable dynamic tool discovery and execution without hardcoding tool names:
# Get meta tools for dynamic discovery
tools = toolset.get_tools("hris_*")
meta_tools = tools.meta_tools()
# Search for relevant tools using natural language
filter_tool = meta_tools.get_tool("meta_search_tools")
results = filter_tool.call(query="manage employees", limit=5)
# Execute discovered tools dynamically
execute_tool = meta_tools.get_tool("meta_execute_tool")
result = execute_tool.call(toolName="hris_list_employees", params={"limit": 10})
For more examples, check out the examples/ directory:
- Error Handling
- StackOne Account IDs
- Available Tools
- File Uploads
- OpenAI Integration
- LangChain Integration
- CrewAI Integration
- LangGraph Tool Node
- Meta Tools
Apache 2.0 License