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 |
|
| `get_member_detail` | Full profile of a single network member |
|
||||||
| `list_deal_stages` | Available deal stages |
|
| `list_deal_stages` | Available deal stages |
|
||||||
| `list_industries` | Industry classifications |
|
| `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",
|
name="list_firms",
|
||||||
description=(
|
description=(
|
||||||
"Returns the firms visible to the current user: "
|
"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": []},
|
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(
|
types.Tool(
|
||||||
name="list_members",
|
name="list_members",
|
||||||
description=(
|
description=(
|
||||||
|
|
@ -527,6 +559,16 @@ async def call_tool(name: str, arguments: dict) -> list[types.TextContent]:
|
||||||
result = await _get("/firms")
|
result = await _get("/firms")
|
||||||
return await respond(result)
|
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":
|
elif name == "list_members":
|
||||||
params: dict[str, Any] = {}
|
params: dict[str, Any] = {}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue