@hasna/sourcing
v0.1.0
Published
Open source supplier sourcing app — discover, enrich, and manage suppliers with Exa.ai
Maintainers
Readme
@hasna/sourcing
Open source supplier sourcing app — discover, enrich, and manage suppliers with Exa.ai.
Features
- Supplier Management: CRUD operations for suppliers with full contact tracking
- Exa.ai Discovery: Search the web for suppliers and manufacturers using AI-powered search
- Data Enrichment: Automatically enrich supplier records with emails, phone numbers, addresses, and LinkedIn profiles
- SQLite Database: Local-first with WAL mode for concurrent access
- CLI: Full command-line interface for all operations
- REST API: HTTP server for integration with other tools
- MCP Server: Model Context Protocol server for AI agent integration
Installation
bun install
bun run buildUsage
CLI
# Add a supplier
sourcing add "Acme Manufacturing" --category "Injection Molding" --website https://acme.com
# List suppliers
sourcing list
# Search suppliers
sourcing search "plastic"
# Discover suppliers via Exa.ai
sourcing discover "plastic injection molding manufacturers China" --save --category "Manufacturing"
# Enrich a supplier with additional data
sourcing enrich <supplier-id>
# Manage contacts
sourcing contact-add <supplier-id> "John Doe" --email [email protected] --primaryREST API
# Start the server
sourcing-serve
# Or
curl http://localhost:9877/health
# Create a supplier
curl -X POST http://localhost:9877/api/suppliers \
-H "Content-Type: application/json" \
-d '{"name":"Acme Corp","category":"Manufacturing"}'
# Discover suppliers
curl -X POST http://localhost:9877/api/discover \
-H "Content-Type: application/json" \
-d '{"query":"electronics manufacturers Taiwan","save":true}'
# Enrich a supplier
curl -X POST http://localhost:9877/api/enrich \
-H "Content-Type: application/json" \
-d '{"supplierId":"<id>"}'MCP Server
Add to your MCP configuration:
{
"mcpServers": {
"sourcing": {
"command": "sourcing-mcp"
}
}
}Available tools:
list_suppliers— List all suppliersget_supplier— Get supplier detailscreate_supplier— Create a new supplierupdate_supplier— Update a supplierdelete_supplier— Delete a suppliersearch_suppliers— Search suppliersadd_contact— Add a contactlist_contacts— List contactsdiscover_suppliers— Discover via Exa.aienrich_supplier— Enrich with additional datalist_enrichment_jobs— List enrichment jobs
Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| SOURCING_DB_PATH | SQLite database path | ~/.hasna/sourcing/sourcing.db |
| SOURCING_PORT | API server port | 9877 |
Architecture
src/
cli/ Command-line interface
server/ REST API server
mcp/ MCP server
db/ Database layer (SQLite + Bun)
services/ External integrations (Exa.ai)
types/ TypeScript typesLicense
Apache-2.0
