Ampliar el kit de herramientas de IA
Descripción general
El kit de herramientas de Extend AI proporciona una implementación de herramientas basada en Python para la integración con las API de Extend para múltiples marcos de IA, como el Protocolo de Contexto de Modelo (MCP) de Anthropic, OpenAI , LangChain y CrewAI . Permite a los usuarios delegar ciertas acciones en el flujo de gestión de gastos a agentes de IA o clientes compatibles con MCP, como Claude Desktop.
Estas herramientas están diseñadas para usuarios de Extend con claves API. Si aún no está registrado en Extend y desea obtener más información sobre nuestra plataforma de gestión de tarjetas y gastos virtuales, moderna y fácil de usar, para pequeñas y medianas empresas, puede visitar paywithextend.com .
Related MCP server: Flutterwave MCP Server
Características
Compatibilidad con múltiples marcos de IA : funciona con el protocolo de contexto de modelo antrópico, agentes OpenAI, LangChain LangGraph y ReAct, y marcos CrewAI
Conjunto de herramientas integral : compatible con todas las principales funcionalidades de API de Extend, que abarcan nuestros puntos finales de gestión de tarjetas de crédito, tarjetas virtuales, transacciones y gastos.
Instalación
No necesitas este código fuente a menos que quieras modificar el paquete. Si solo quieres usarlo, ejecuta:
pip install extend_ai_toolkitRequisitos
Python : versión 3.10 o superior
Ampliar clave API : Regístrese en paywithextend.com para obtener una clave API
Requisitos específicos del marco :
LangChain: paquetes
langchainylangchain-openaiOpenAI: paquete
openaiCrewAI: paquete de
crewaiAntrópico: paquete
anthropic(para Claude)
Configuración
La biblioteca debe configurarse con su clave API Extend y API, ya sea a través de variables de entorno o argumentos de línea de comando:
--api-key=your_api_key_here --api-secret=your_api_secret_here o mediante variables de entorno:
EXTEND_API_KEY=your_api_key_here
EXTEND_API_SECRET=your_api_secret_hereHerramientas disponibles
El kit de herramientas proporciona un conjunto completo de herramientas organizadas por funcionalidad:
Tarjetas virtuales
get_virtual_cards: Obtener tarjetas virtuales con filtros opcionalesget_virtual_card_detail: Obtenga información detallada sobre una tarjeta virtual específica
Tarjetas de crédito
get_credit_cards: Lista todas las tarjetas de créditoget_credit_card_detail: Obtenga información detallada sobre una tarjeta de crédito específica
Actas
get_transactions: Obtener transacciones con varios filtrosget_transaction_detail: Obtener información detallada sobre una transacción específicaupdate_transaction_expense_data: Actualizar los datos relacionados con los gastos de una transacción
Gestión de gastos
get_expense_categories: Lista todas las categorías de gastosget_expense_category: Obtener detalles de una categoría de gasto específicaget_expense_category_labels: Obtener etiquetas para una categoría de gastocreate_expense_category: Crea una nueva categoría de gastoscreate_expense_category_label: Agregar una etiqueta a una categoría de gastoupdate_expense_category: Modificar una categoría de gasto existentecreate_receipt_attachment: Cargar un recibo (y, opcionalmente, adjuntarlo a una transacción)automatch_receipts: Iniciar un trabajo asincrónico para hacer coincidir automáticamente los recibos cargados con las transaccionesget_automatch_status: Obtener el estado de un trabajo de coincidencia automáticasend_receipt_reminder: envía un recordatorio (por correo electrónico) para una transacción que no tiene recibo
Ejemplos de uso
Protocolo de contexto modelo
El kit de herramientas proporciona recursos en el paquete extend_ai_toolkit.modelcontextprotocol para ayudarlo a construir un servidor MCP.
Desarrollo
Pruebe extender el servidor MCP localmente usando MCP Inspector:
npx @modelcontextprotocol/inspector python extend_ai_toolkit/modelcontextprotocol/main.py --tools=allIntegración de escritorio de Claude
Agregue esta herramienta como un servidor MCP a Claude Desktop editando el archivo de configuración:
En MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json En Windows: %APPDATA%/Claude/claude_desktop_config.json
Si desea utilizar la herramienta create_receipt_attachment con Claude Desktop, deberá instalar el servidor mcp del sistema de archivos a través de npm install @modelcontextprotocol/server-filesystem add y luego agregarlo también al archivo de configuración.
Nota: Debido a las limitaciones actuales, las imágenes cargadas directamente en Claude Desktop no se pueden cargar en Extend, ya que la aplicación Claude Desktop no tiene acceso a los datos de la imagen subyacente. Por ello, es necesario el servidor MCP del sistema de archivos .
Con la incorporación del Sistema de Archivos, puede configurar una carpeta dedicada para recibos e indicarle a Claude que los cargue y los asocie automáticamente con la transacción más probable. Alternativamente, si conoce la transacción a la que desea adjuntar el recibo, puede indicarle a Claude que los cargue para esa transacción (y omitir el proceso de asociación automática).
{
"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"
]
}
}Ejecución remota
También puede ejecutar su servidor de forma remota y comunicarse a través del transporte SSE:
python -m extend_ai_toolkit.modelcontextprotocol.main_sse --tools=all --api-key="apikey" --api-secret="apisecret"y opcionalmente conectarse usando el cliente de terminal MCP:
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()Contribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.