feat: add get_deals_rich tool, enrich list_firms
- get_deals_rich: full deal export with tombstone text, quote, attachments, fee structure, multiples, co-advisory info. Date range optional. - list_firms: now returns Summary, Countries, EquityPartnerName
This commit is contained in:
parent
ebe1c78ef1
commit
7f7c67b9b4
|
|
@ -84,7 +84,8 @@ Restart Claude Desktop.
|
|||
| `get_member_detail` | Full profile of a single network member |
|
||||
| `list_deal_stages` | Available deal stages |
|
||||
| `list_industries` | Industry classifications |
|
||||
| `list_firms` | Firms visible to your account |
|
||||
| `list_firms` | Firms visible to your account (with summary, countries, equity partner) |
|
||||
| `get_deals_rich` | Full deal dataset including tombstone narrative, fee structure, multiples, attachments list |
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
44
server.py
44
server.py
|
|
@ -301,11 +301,43 @@ async def list_tools() -> list[types.Tool]:
|
|||
name="list_firms",
|
||||
description=(
|
||||
"Returns the firms visible to the current user: "
|
||||
"their own firm plus all firms that have at least one deal shared with the network."
|
||||
"their own firm plus all firms that have at least one deal shared with the network. "
|
||||
"Each firm includes a summary description, countries of activity, and equity partner info."
|
||||
),
|
||||
inputSchema={"type": "object", "properties": {}, "required": []},
|
||||
),
|
||||
|
||||
types.Tool(
|
||||
name="get_deals_rich",
|
||||
description=(
|
||||
"Returns a rich dataset of deals using the portal's export engine. "
|
||||
"Includes fields NOT available in list_deals:\n"
|
||||
"- TransactionTitle and TransactionDescription: the tombstone narrative text\n"
|
||||
"- Quote and QuoteAuthor: a client or deal quote\n"
|
||||
"- DealAttachments: list of attached document filenames\n"
|
||||
"- SuccessFee, FeeShare: fee structure\n"
|
||||
"- Multiple, MultipleOverride: valuation multiples\n"
|
||||
"- CoAdvisory, OtherFirmInDeal, OtherFirmInvolved: network co-advisory relationships\n"
|
||||
"- Financing-specific fields (PurposeOfFinancing, TypeOfLending, etc.)\n\n"
|
||||
"Confidential financial values are masked. HTML is stripped from narrative fields.\n\n"
|
||||
"Use this when you need the full deal narrative, tombstone text, or fee/multiple data. "
|
||||
"Use list_deals for quick filtered searches."
|
||||
),
|
||||
inputSchema={
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"date_from": {
|
||||
"type": "string",
|
||||
"description": "Start of date range (YYYY-MM-DD). Defaults to 5 years ago.",
|
||||
},
|
||||
"date_to": {
|
||||
"type": "string",
|
||||
"description": "End of date range (YYYY-MM-DD). Defaults to today.",
|
||||
},
|
||||
},
|
||||
},
|
||||
),
|
||||
|
||||
types.Tool(
|
||||
name="list_members",
|
||||
description=(
|
||||
|
|
@ -527,6 +559,16 @@ async def call_tool(name: str, arguments: dict) -> list[types.TextContent]:
|
|||
result = await _get("/firms")
|
||||
return await respond(result)
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
elif name == "get_deals_rich":
|
||||
params: dict[str, Any] = {}
|
||||
if arguments.get("date_from"):
|
||||
params["date_from"] = arguments["date_from"]
|
||||
if arguments.get("date_to"):
|
||||
params["date_to"] = arguments["date_to"]
|
||||
result = await _get("/deal-export", params)
|
||||
return await respond(result)
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
elif name == "list_members":
|
||||
params: dict[str, Any] = {}
|
||||
|
|
|
|||
Loading…
Reference in New Issue