Accept id alias in MCP prompt read tools

This commit is contained in:
Mikei386
2026-09-25 08:54:21 +02:00
parent 71a6517073
commit a2d118261a
2 changed files with 41 additions and 4 deletions
+23
View File
@@ -205,3 +205,26 @@ def test_web_login_with_unicode_token(tmp_path, monkeypatch):
with TestClient(create_app(tmp_path)) as c:
assert c.post('/api/login',json={'token':'falsch-ü'}).status_code == 401
assert c.post('/api/login',json={'token':'synthetic-ä-admin-🔐'}).status_code == 200
def test_mcp_id_aliases_and_conflicts(client):
p=make(client)
headers={'Authorization':'Bearer '+client.mcp_token,'Accept':'application/json, text/event-stream'}
def call(tool,args):
response=client.post('/mcp/',headers=headers,json={'jsonrpc':'2.0','id':1,'method':'tools/call','params':{'name':tool,'arguments':args}})
assert response.status_code == 200
return response.json()['result']
listed=client.post('/mcp/',headers=headers,json={'jsonrpc':'2.0','id':2,'method':'tools/list','params':{}}).json()['result']['tools']
for tool in ['get_prompt','get_prompt_versions']:
schema=next(t['inputSchema'] for t in listed if t['name']==tool)
assert {'id','prompt_id'} <= set(schema['properties'])
canonical=call(tool,{'prompt_id':p['id']})
assert not canonical.get('isError')
assert call(tool,{'id':p['id']}) == canonical
assert call(tool,{'id':p['id'],'prompt_id':p['id']}) == canonical
for args in [{},{'id':''},{'id':' '},{'id':p['id'],'prompt_id':'different'}]:
assert call(tool,args)['isError']
assert call('get_prompt',{'id':p['id'],'version':1}) == call('get_prompt',{'prompt_id':p['id'],'version':1})
client.post('/api/prompts/'+p['id']+'/trash')
assert call('get_prompt',{'id':p['id']})['isError']
assert call('get_prompt_versions',{'id':p['id']})['isError']