KI-Toolkit erweitern
Überblick
Das Extend AI Toolkit bietet eine Python-basierte Implementierung von Tools zur Integration mit Extend-APIs für verschiedene KI-Frameworks, darunter Anthropics Model Context Protocol (MCP) , OpenAI , LangChain und CrewAI . Es ermöglicht Benutzern, bestimmte Aktionen im Ausgabenmanagement-Flow an KI-Agenten oder MCP-kompatible Clients wie Claude Desktop zu delegieren.
Diese Tools richten sich an bestehende Extend-Nutzer mit API-Schlüsseln. Wenn Sie noch nicht bei Extend registriert sind und mehr über unsere moderne, benutzerfreundliche Plattform für virtuelle Karten und Ausgabenmanagement für kleine und mittlere Unternehmen erfahren möchten, besuchen Sie uns unter paywithextend.com .
Related MCP server: Flutterwave MCP Server
Merkmale
Unterstützung mehrerer KI-Frameworks : Funktioniert mit Anthropic Model Context Protocol, OpenAI Agents, LangChain LangGraph & ReAct und CrewAI-Frameworks
Umfassendes Tool-Set : Unterstützt alle wichtigen API-Funktionen von Extend, einschließlich unserer Endpunkte für Kreditkarten, virtuelle Karten, Transaktionen und Kostenmanagement
Installation
Sie benötigen diesen Quellcode nur, wenn Sie das Paket ändern möchten. Wenn Sie das Paket einfach verwenden möchten, führen Sie Folgendes aus:
pip install extend_ai_toolkitAnforderungen
Python : Version 3.10 oder höher
API-Schlüssel erweitern : Melden Sie sich bei paywithextend.com an, um einen API-Schlüssel zu erhalten
Frameworkspezifische Anforderungen :
LangChain:
langchainundlangchain-openai-PaketeOpenAI:
openai-PaketCrewAI:
crewai-PaketAnthropisch:
anthropicPaket (für Claude)
Konfiguration
Die Bibliothek muss mit Ihrem Extend-API-Schlüssel und Ihrer API konfiguriert werden, entweder über Umgebungsvariablen oder Befehlszeilenargumente:
--api-key=your_api_key_here --api-secret=your_api_secret_here oder über Umgebungsvariablen:
EXTEND_API_KEY=your_api_key_here
EXTEND_API_SECRET=your_api_secret_hereVerfügbare Tools
Das Toolkit bietet einen umfassenden Satz von Tools, die nach Funktionalität geordnet sind:
Virtuelle Karten
get_virtual_cards: Virtuelle Karten mit optionalen Filtern abrufenget_virtual_card_detail: Erhalten Sie detaillierte Informationen zu einer bestimmten virtuellen Karte
Kreditkarten
get_credit_cards: Listet alle Kreditkarten aufget_credit_card_detail: Erhalten Sie detaillierte Informationen zu einer bestimmten Kreditkarte
Transaktionen
get_transactions: Transaktionen mit verschiedenen Filtern abrufenget_transaction_detail: Erhalten Sie detaillierte Informationen zu einer bestimmten Transaktionupdate_transaction_expense_data: Aktualisieren Sie die kostenbezogenen Daten für eine Transaktion
Kostenmanagement
get_expense_categories: Listet alle Ausgabenkategorien aufget_expense_category: Details zu einer bestimmten Ausgabenkategorie abrufenget_expense_category_labels: Etiketten für eine Ausgabenkategorie abrufencreate_expense_category: Erstellen Sie eine neue Ausgabenkategoriecreate_expense_category_label: Fügen Sie einer Ausgabenkategorie ein Label hinzuupdate_expense_category: Eine bestehende Ausgabenkategorie änderncreate_receipt_attachment: Laden Sie eine Quittung hoch (und hängen Sie sie optional an eine Transaktion an)automatch_receipts: Asynchronen Job starten, um hochgeladene Quittungen automatisch Transaktionen zuzuordnenget_automatch_status: Ruft den Status eines Automatch-Jobs absend_receipt_reminder: Senden Sie eine Erinnerung (per E-Mail) für eine Transaktion, für die eine Quittung fehlt
Anwendungsbeispiele
Modellkontextprotokoll
Das Toolkit stellt Ressourcen im Paket extend_ai_toolkit.modelcontextprotocol bereit, die Sie beim Erstellen eines MCP-Servers unterstützen.
Entwicklung
Testen Sie den Extend MCP-Server lokal mit MCP Inspector:
npx @modelcontextprotocol/inspector python extend_ai_toolkit/modelcontextprotocol/main.py --tools=allClaude Desktop Integration
Fügen Sie dieses Tool als MCP-Server zu Claude Desktop hinzu, indem Sie die Konfigurationsdatei bearbeiten:
Unter MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json Unter Windows: %APPDATA%/Claude/claude_desktop_config.json
Wenn Sie das Tool „create_receipt_attachment“ mit Claude Desktop verwenden möchten, müssen Sie den MCP-Server des Dateisystems über npm install @modelcontextprotocol/server-filesystem add“ installieren und ihn dann auch zur Konfigurationsdatei hinzufügen.
Bitte beachten Sie: Aufgrund aktueller Einschränkungen können Bilder, die direkt auf den Claude Desktop hochgeladen wurden, nicht in Extend hochgeladen werden, da die Claude Desktop-App keinen Zugriff auf die zugrunde liegenden Bilddaten hat. Daher ist der Filesystem MCP Server erforderlich.
Mit dem zusätzlichen Dateisystem können Sie einen eigenen Ordner für Belege einrichten und Claude anweisen, den Beleg hochzuladen und ihn automatisch der wahrscheinlichsten Transaktion zuzuordnen. Alternativ können Sie Claude anweisen, den Beleg für diese Transaktion hochzuladen (und den automatischen Zuordnungsprozess überspringen), wenn Sie die Transaktion kennen, der Sie den Beleg anhängen möchten.
{
"extend-mcp": {
"command": "python",
"args": [
"-m",
"extend_ai_toolkit.modelcontextprotocol.main",
"--tools=all"
],
"env": {
"EXTEND_API_KEY": "apik_XXXX",
"EXTEND_API_SECRET": "XXXXX"
}
},
// optional: if you want to use the create_receipt_attachment tool
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/receipts/folder"
]
}
}Remote-Ausführung
Sie können Ihren Server auch remote ausführen und über SSE-Transport kommunizieren:
python -m extend_ai_toolkit.modelcontextprotocol.main_sse --tools=all --api-key="apikey" --api-secret="apisecret"und optional eine Verbindung über den MCP-Terminalclient herstellen:
python -m extend_ai_toolkit.modelcontextprotocol.client.mcp_client --mcp-server-host localhost --mcp-server-port 8000 --llm-provider=anthropic --llm-model=claude-3-5-sonnet-20241022OpenAI
import os
from langchain_openai import ChatOpenAI
from extend_ai_toolkit.openai.toolkit import ExtendOpenAIToolkit
from extend_ai_toolkit.shared import Configuration, Scope, Product, Actions
# Initialize the OpenAI toolkit
extend_openai_toolkit = ExtendOpenAIToolkit.default_instance(
api_key=os.environ.get("EXTEND_API_KEY"),
api_secret=os.environ.get("EXTEND_API_SECRET"),
configuration=Configuration(
scope=[
Scope(Product.VIRTUAL_CARDS, actions=Actions(read=True)),
Scope(Product.CREDIT_CARDS, actions=Actions(read=True)),
Scope(Product.TRANSACTIONS, actions=Actions(read=True)),
]
)
)
# Create an agent with the tools
extend_agent = Agent(
name="Extend Agent",
instructions="You are an expert at integrating with Extend",
tools=extend_openai_toolkit.get_tools()
)LangChain
import os
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
from extend_ai_toolkit.langchain.toolkit import ExtendLangChainToolkit
from extend_ai_toolkit.shared import Configuration, Scope, Product, Actions
# Initialize the LangChain toolkit
extend_langchain_toolkit = ExtendLangChainToolkit.default_instance(
api_key=os.environ.get("EXTEND_API_KEY"),
api_secret=os.environ.get("EXTEND_API_SECRET"),
configuration=Configuration(
scope=[
Scope(Product.VIRTUAL_CARDS, actions=Actions(read=True)),
Scope(Product.CREDIT_CARDS, actions=Actions(read=True)),
Scope(Product.TRANSACTIONS, actions=Actions(read=True)),
]
)
)
# Create tools for the agent
tools = extend_langchain_toolkit.get_tools()
# Create the agent executor
langgraph_agent_executor = create_react_agent(
ChatOpenAI(model="gpt-4"),
tools
)CrewAI
import os
from extend_ai_toolkit.crewai.toolkit import ExtendCrewAIToolkit
from extend_ai_toolkit.shared import Configuration, Scope, Product, Actions
# Initialize the CrewAI toolkit
toolkit = ExtendCrewAIToolkit.default_instance(
api_key=os.environ.get("EXTEND_API_KEY"),
api_secret=os.environ.get("EXTEND_API_SECRET"),
configuration=Configuration(
scope=[
Scope(Product.VIRTUAL_CARDS, actions=Actions(read=True)),
Scope(Product.CREDIT_CARDS, actions=Actions(read=True)),
Scope(Product.TRANSACTIONS, actions=Actions(read=True)),
]
)
)
# Configure the LLM (using Claude)
toolkit.configure_llm(
model="claude-3-opus-20240229",
api_key=os.environ.get("ANTHROPIC_API_KEY")
)
# Create the Extend agent
extend_agent = toolkit.create_agent(
role="Extend Integration Expert",
goal="Help users manage virtual cards, view credit cards, and check transactions efficiently",
backstory="You are an expert at integrating with Extend, with deep knowledge of virtual cards, credit cards, and transaction management.",
verbose=True
)
# Create a task for handling user queries
query_task = toolkit.create_task(
description="Process and respond to user queries about Extend services",
agent=extend_agent,
expected_output="A clear and helpful response addressing the user's query",
async_execution=True
)
# Create a crew with the agent and task
crew = toolkit.create_crew(
agents=[extend_agent],
tasks=[query_task],
verbose=True
)
# Run the crew
result = crew.kickoff()Beitragen
Beiträge sind willkommen! Senden Sie gerne einen Pull Request.
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE.