From f9163b12286dcc2f3bc64494f17c59d7be634eda Mon Sep 17 00:00:00 2001 From: zzlgreat Date: Wed, 17 Dec 2025 14:58:56 +0800 Subject: [PATCH] update pay ui --- __pycache__/mcp_server.cpython-310.pyc | Bin 90316 -> 90229 bytes mcp_server.py | 43 +++++++++++-------------- 2 files changed, 18 insertions(+), 25 deletions(-) diff --git a/__pycache__/mcp_server.cpython-310.pyc b/__pycache__/mcp_server.cpython-310.pyc index dd509476075b608ec7c294f04937b5012959aca8..d8e93f255b2f0c52a8f6d47f23132d15d623c604 100644 GIT binary patch delta 15419 zcma)C34Bb~_n$j6nItobOcEp_AtDJ85=u(#K}3kezKmszycbDib7x{nG4`%X-13T0 zl$LJjw9-Y3F1o2wTN_nfBq;p_ZBZ@#pL5=175)6%&;8DQ=X~$E_nv$1x%a&|a>(P) zgC0!^e0_}?_%CJDfb0*mN}7bS(7mzKb>NF!QAXVipo3S(+trX((7ql))M#cQs6Cvu9j0*E2PJy z#B3%#EaP^-L~W8L(cm|O-x@NX zm$uYlZk4t@kokhNy$*AS^x^}VFG)LVna=-W?vh?6<|}T$yh^{XNw2$qchhgOw8tG0 zdrLhUEaw}N3oKMG*PFCliPBrrKB)}+xlfwygh{^*LHAAr7riUJ2Mzaw6W_;9vRMPe zA4muOQ-4r8L_`0OhL|XQ*ZM!{i|6r!aue8g%}-^aV98bvIJuI$8QsIzo-U zf}s0MdIn}tH*}9mUpLa~7)v#`H$ZCSt7fO=`-TApUMdK~Z(89k?i$r)1xNiY6Y7SLU2SRCD zrwPvKzdLCLjOGnm1c5BLZm@~XreG%sTdEleYN2Z4fLfRumr!d(&Tb90@cOw4ByFHX zKsT?!Z(C}MwaA)U6g)+{m#ZDwX%CW^I(D3JZ2(aRD6tL3+tIy0akib*Bnh>+Mpr!^ zG@To??*g)i>dv=rVg+4SDBYY58a;5eEq&xBa<>*5xi2(J=&g}sxAcSB!&@b8KJtJ}E$I5Lb~35oGCedL2!uf(>Q973Ie`cRKr)c@ zNl+Uk`^f`jbEdY12A-0jrib6bP?DGFE%@6wV+d$cfPtQDz;L>a3zV4!!=#v}K~b0Mf^0cFwyjd0M|#SwFqGfN&On3ON40?w0%13Kk2z^CPOz*X`H zz;*ISzzy;!z~|-BfG@~n0AG^F0`8K>2_}!1C&&|Ji#$ojMRk-Kb}+eB&XgU@GBp|Z zS`n1l%dj?ksn%kZtxGkQX~`Olo;gtFl4`DOTB@_ysKGpt7L&A?q|@Eo`%(Ayo=)3) zKCl+h_Rf%Fb8!1Flrd*GS7LTZlzS6v5!4qGOLALTLROZ_&fY}RQyy3b_2op9-N|MJ z(XLASWy~Xw$(h7^9O_Rj^MIT)!_9k=c)x-Csd~((L9&vVS?-RXA?E+kqLeBRz_V-> zn8jmxHIx#uFd)de22yme)ItgY3DzT|C@EU41Bz0eWhVSSOI;;FCd4GR7RowU^xPTf zWMvy%&EfYs_wRcACCP?um~S_hdRX${w-m}ID4U@?4`quKzM46utx(-26M-`23-G+X z)Cjl(%8Tyu68!GO2GTAlFB5+U@n3;wmH#T#UW4*Fl-*GF5PvV!-XQ*~#CO57%6}7T z&bI*eK`DdsHqHDUsJ%<$e-COZbwAYJhw=fG15ge^IRxcHC?ApW{bc-Ocvf5Btn-u6 zFP}g;Owo0iqN@O&li++B&_a``#i0BY%4gtC+)JO6qv6Pb`WNynz$AHArWgEv3FQc| za6hT6uZVS&@M|zQi-wRS2ggjYXI?$dJmUNSob$`{ zPKfMcAUz6?KN9UHsQpYG%y-LwA^8Q6SCD*x90T>rncCGx{m>d13#SipSSqc>ln~XLnwB?@3U`Xn77;7e_lCFwBDrFBT&1wajvp z-BFM+)0$CGl<%T_y1s7+dC=-Q@$u9&;shUBlQa*Js`CX<3Q*wEI!E z*|n}m8=av9jc*t4_d3tEi%q?E0uJu;rC~dY7rTP`&Svhq5dAJyix>Alq6cDH(%Y(J zx65a6x~^JlODWZx7NddB5I%Q#rS)WnFR^|^3`xJlw!6BF_=N=}cxW_s9}sI7Y4uu$ z{~P|{Cq(S1!)&0qF)EH77i~tj_3wu~1M!;Z_5bp-V(jRO$ZtVV&K$cK{~j&3LuijO z@7^=ye0gpm@0%i~j**5OM~x2QGyp6N@%y2G8vTSdYUwpYc32$+1-XNRs6eO`qsD!}t_c6}aV$;rAK#1JcFi9j%zV$G7VYoS@o&Y} z36bnkad<+S;RecAh>(d1hQF|?6=NrMX0ybKiLIHpm^G=Xcz5Du^WUhdF~R>4Z9)T$ z|AO!-7#Y`yW0t`_3}QNs>j1f@h?vxoEf(pM+At#+x$8>5ExCS zv}QhFAXLjuB6Z5d2iw`D+WBTm&yF;Z7*DQF4M(oWL4{$hEduOB4L7I*?J+ghxdq$$ z;29%orK%?=3@(~n!F~DMY1C_M7nmo1u`kAlUqLm=`6b8&^TXb7BTlA8CD_fwQ zuaP`jXe0x?czVs(O5X5#X)5(xpmTU^F-Si1bsIICv|FLQ!!yUr;q=ZiZq!J=o3!(F zQj?Y16piFJM6*CYU%$n)RRf*qxA<(;jMl`Mix$HODz-1XxO#;u=z~u;PY#@I(9jj#t#gPEmQCq9n>PmvIwaMv}## zcE%6G!x&f-OhS|>EP5OlUkJ}mvSBgVWgE}Pvf{uko<(-qIx|1NC>#ir+!}X!vQG)W zw7aZw?-F&!J;Qku=nFO;E@@hfFE?W+G&l?ai-)5?vdt^^vO9RDBRfy#Rj9v)fPqn- zpf4-{9mPi^N^9aH#)H$QsF`TFXQ6FgZh=kWUg8~Vhqk*RKJ2ZajdqcbAy{Y7scFNV zJpM8pLz&P{+c+E}hh|yq9q*n+Jcsqyr0p`OaatRq4Thjshd>sz&;oisKe?swum!Tu zMGM>4%@&|-%)R_k1oSAMFYel+yJHG2_Kc?#9benCUG13%gEdI(G($3?nrC7dZzbkV zZ^F)q$EIKJv=|NMBIF?~L8B%xYI9`U9oZRmt-;3MkCu*ElU(ys9hGFI_T!8_Y&RYF5165#0>e9SZYT5 z{y&;gpI%~oW>?59Pi5Y4){fMH{XB(04lTkl>+6h}^rTveq*||F1gdV0xo<)151xA> z6*F=586ob@GzrhFAl6K@&f3LRiO;jreV@Uu-Sb=}(&q$=KG~tHy|84zW?ogl?-CJ| z6CO*mZiBX0gSuRoE9XOO(c<36M{`z(k64k@jCB#EIdZ3l6zo9&q>bT`U=y5BYk!T1 zoB0UqC$eUyHQH|N1KK?c?ZVdNwr0accy3zT#=30KR7B2fC#G;8Kld%eX3xsZEtoS& zoXCB3{BtQFRNUI^skh z#S?rQ!j`+{^3NIjO$>1KWv`3HjxocxBXI}9iwNY+7ogUdH@6{!yy=dzhKC&6+Jm<)Z|G#EOKX3WF2_!8(&F^p z=*yT$-8feNBnU;DvJlsSjS-AZ7eALyGvLLF&k#d4O<}p>#ZCDs*(k^Xi1Dj)CJ#gD z9E7@+w`%b*FE!=>2D854+ z-xkhpi7rZ@=)2L|qcGQ&pXdsFAzvF!VZwN0G4c#tNVy%_7xxi|)&`0xJHy4_*NmK}^#+t2-GPL$P%-)*7ty5R|1L+_%KH_OuSDadeEy9rdF9-p=i67M%-his{Z` z%C*@YRxaC%avkcF-W1Ng;qV5!Wp7Wdc?S|-M0g2drzklV=!f%-fqktyw;MUP^_#r{ zkPO~Q$5GePO-S#c(nXgOfnw8}k@T7c)KN$!qaHs)HC9xB~l*E0VIl%Wk)LlNFUXMXcI&Jnna}ffmF&BX z+waM@cehu!ANKSXKpIZ~Eb@h>Mq^@1#m3DQ+gHMC1J4$=caqxYA`gnD*sFKEBP%<9 zW?%j)JQr&t+R??}a!c$qM;v{pOKyWj{O`>=A1yCHp!w5$$tO5zIGHJ%9Y+192(@e5 z0y|Xq%EEVpSTEPQci%Cwcg2XqXZ1&cDts@IXQC=BhvFupi!LZiZLTW-Sl zbE`YC=8FYK-hdbD&R=z94k3Lt+pq$=dQANIRXBTGu%n#iq*=A(Vh8&I$jfnu*zTs=CTJuL=(y*%JFN(%wt@WWieH)06;V@x{X zOMzVrm1s?IFAC!H@}}b6HzviL2=DYgk0m!6{zh!O0@`xBc>UO*u$RI37D3axP*%!R&RV94^32o(E4Xz@)P4I~i_BoJ*lBoEO2b374p(6ozT>OkH@ zyA3whhcpo8-dJA#d_R)Tq3!pvrtVnWTpuCx1CSN>tTWl><^xDOh;RtuLlJqxYWN&N0rAK!Cy6I+oQPmwh-N1{vrIAg4O6VtCf5Cq*)LUz_CURG_!jntKDE0+e!-HM4-{*&J58U2d2oYcoVm zjQSxegnr zEREL-{xOn>Fg#>WD}4xq$!6~zPb#$oso zs{a^;_t_5YoalBoZZbKY{7siSayq4d6OI_anb7@#uS6TPR_eKck7H5$3D&+u7>tj8 z2v_j&M>zDOgFFU7y^X8gocVo&kZzUnj6ed0g3}*!Q#hr9wuzVAHkkaiEHP=g8m23#`-qQjQ`IS`9mi2 zIu1NI4X>a-THq<+hfLT@_=(kQzz?i<`5e~==PPyEI~rlT*isz&B@Z)h=L;c0e?Wt@ zU0T{XT*=jZ)i6I;XDvx+PagFuv`v<%jMk5 zi9Kp_#s%sPxpaK#?6QO7GO0JzUZ|xoyN)u0xPCb>h&)AMHxY#J!f^$4cSOrydvyAW z%mI{pX2Di1!2338(YX2sibLYRA}kS$ehqG}hm%SDyltcxUpPB$j!5zPuRk$=*Xk>& zI?wA!rf>)~-@y9s2saUKW9ByAf$Dzr$KRr3RaZ|n3Ygea6)Kig1%~{C%)1Ep5dKBb zV6T;8cU3|w237U?Kia`%Ti%p#IP&4Vzx4k5;rv~pz1FFj7TNVfhwH?kYdPk|qJr*? zcdDbJI7)P>YAHG&Ge%J)a042X(I1%zp7=O}+=I2JM2G96+Wvsgbn!leHS$sYdw8ID z{(8ItUre}%IC(va9TRu1cMG@%lY`4}ooKo*A!pr~?X1Ff^!Z>M*638COf(uFrz6}# zH}yua;^Q;~9RdZGH;&ba&=h4RtkD72SY*}46NQ0~R!sRlX!H$i=!rm4Mu`if3<4?u z%~4d*$Z&nRFUp!A_#sfB(NO4|F{A93`1JS4c69iVvuZ=jzc#e2@M#xT`3({9$Jaq2 z(5%=mp0x3HI8)%=&(2F+xBp0D2D;8vih(yH4K%ANk#{r1TmnP1c-3-ej(?jgO z*@lIR<2U=UmcswmnF!SY@Y7JVB1IZHfpr;RvvQ}3F3=b+YiK4{_dBfS%ci`cuP*m|+>ZcAqr zP$A`T?Dt6o{J2P;39F^6QSdCnI)Iqgd=1u@A~+FVL3j<}b%Z?#dlBA3IE3&9f(zkI zgnbBaBfK*i@m+-X5cVT{gm4hyV}wr-jv{=Ba17xCgijH^K==ybeE>LW>&!$r?mf(+ zU9a40=EZ(i4jEW)LnS(?U7604J@3uhm%U(Sm;6{v+0)^yxd-b|_Cgd}@70pFI7K?` z^J!o>O%3(K3jFP?kLfU4nTnkn#n!eFtviDg^-bXTGJ^~cOD{Su&CJX~8Skw87{?su zXdv-+2<;JK6e*q!^>2dB4A9I=Yh-%HyOkY?XA!I?M!$M5RO1aF2O;3rgoR8%8?_%= zZlY==0=)$(ab1`nYo_$=!rB-fMrxNbxeJ@GGt-ezUZB^X8Orr;EVMse4rgKWuW@R0 zkB`O26Yw~gmrE_*oaPP!>O4kSo()a*1K* z71$ZRGFklS3ab=!XXXKP^Sy|wO98Uq+`G;+Yost? z&`;9f#~kY7s^T|*_4NDsZ`jxn{q zy{}UssePiOQ(Kr&yMij>ovhIyQ%X1hXCnI#jVf00y4U>p9 zidW29{C9*ulqUzWmLVyiviQO$N{2kxVTC_YIPB_6S$E~YK-N7JM{F_H1g^c#0$f!B z2C;s=RnQ@PeW003%G5!u4LhVP8pQ672*hriA~Zv2ju3C(_Buji13$T6MA6A$ zlCA=&*nm7*rF@md+OoHl>q!j$dZhRdWO{8K|;D{dXK*fmhkexXTx`QdyKK+UwI<1r;7-Y2vG=iRtg?tv=+bW_HdQ4Ig0GuO9>y! z!r2rhaVYD`Mkqx?Szb@4#WGlZ9W98VN9G3n{4qtyg~7aBERoW|C4 z6jHtzj*4`I?jx|JzdRTJRTx~Aty#8wDHpz*j6p43TE-&73smxKJnqJ$Vxkf^nssA6 z$}&d7UJ!k+cp3F~HH)=(HBN0a5qBk6eY^sX?Ueo#S+J5imIdj)(>Rse?$g z97WK`QF%wub zc22o!VIj)02`tcbxP~!Y*)x$v`el4)+qmKup2m!)G9?aFEi^z4JOc;7$jh$69J zJMZtSMM~$fu$ZeSvOwMEu$Va$p!b6lVQKfl({mG8oB^Ei0@Ocq*H=UR_5>D=Z32`( zCNZ;C8-zxq1AuwC+AjWTJJiTe*OT{A91~cCGGY=0%}4b#>9v}Gz4bIU2pMJ01lC$@ z_Iy31UHN7biwLMYdDLq?l+}}2Q)SvzXd6D6we;Gi~ z@eoz~b_4MwC2kUnZVEow(Lj?&4FW}dF?7z9MN?QOWsU{@c#TSJQ{~_k)-~|zeau)? zG*?2WvarBY_h|>XCoz?^3H;zbtwrs{WML*RRjH*Bb$Cd#IN-iP!Ji^LnlPg`6hm`n X^lZ)|A|lN2zaRV`Qr6kZO45_|>2~}p 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 Tho5|K44f4;i!P2~h3x+T{|XP_ diff --git a/mcp_server.py b/mcp_server.py index a4b40a12..890251be 100644 --- a/mcp_server.py +++ b/mcp_server.py @@ -314,33 +314,17 @@ TOOLS: List[ToolDefinition] = [ ), ToolDefinition( name="search_concepts", - description="搜索股票概念板块,支持按涨跌幅、股票数量排序。返回概念详情及相关股票列表。", + description="搜索股票概念板块,返回概念详情及相关股票列表。", parameters={ "type": "object", "properties": { "query": { "type": "string", - "description": "搜索关键词,例如:'新能源'、'人工智能'" - }, - "size": { - "type": "integer", - "description": "每页结果数量", - "default": 10 - }, - "page": { - "type": "integer", - "description": "页码", - "default": 1 - }, - "sort_by": { - "type": "string", - "description": "排序方式:change_pct(涨跌幅), _score(相关度), stock_count(股票数), concept_name(名称)", - "enum": ["change_pct", "_score", "stock_count", "concept_name"], - "default": "change_pct" + "description": "搜索关键词,例如:'新能源'、'人工智能'、'商业航天'" }, "trade_date": { "type": "string", - "description": "交易日期,格式:YYYY-MM-DD,默认最新" + "description": "交易日期,格式:YYYY-MM-DD,不传则使用今天" } }, "required": ["query"] @@ -1469,18 +1453,27 @@ async def handle_search_roadshows(args: Dict[str, Any]) -> Any: return response.json() async def handle_search_concepts(args: Dict[str, Any]) -> Any: - """处理概念搜索""" + """处理概念搜索 + + 参数写死:size=12, page=1, sort_by="_score" + trade_date 如果没传则使用今天的日期 + """ + from datetime import date + + # trade_date 默认今天 + trade_date = args.get("trade_date") or date.today().strftime("%Y-%m-%d") + payload = { "query": args["query"], - "size": args.get("size", 10), - "page": args.get("page", 1), + "size": 12, # 写死 + "page": 1, # 写死 + "sort_by": "_score", # 写死,按相关度排序 + "trade_date": trade_date, "search_size": 100, - "sort_by": args.get("sort_by", "change_pct"), "use_knn": True } - if args.get("trade_date"): - payload["trade_date"] = args["trade_date"] + logger.info(f"[search_concepts] 请求参数: {payload}") response = await HTTP_CLIENT.post(f"{ServiceEndpoints.CONCEPT_API}/search", json=payload) response.raise_for_status() return response.json()