Skip to content

Commit d8afa20

Browse files
committed
GtLOnDemandMcpServer be able to specify the port
1 parent 3b17b13 commit d8afa20

2 files changed

Lines changed: 24 additions & 10 deletions

File tree

‎src/Gt4LlmCore/GtLOnDemandMcpServer.class.st‎

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,22 @@ GtLOnDemandMcpServer class >> onRemoveUniqueInstance: anInstance [
1818
anInstance onRemovedAsUniqueInstance
1919
]
2020

21+
{ #category : #accessing }
22+
GtLOnDemandMcpServer class >> uniqueInstance [
23+
^ uniqueInstance ifNil: [ uniqueInstance := self new start ]
24+
]
25+
26+
{ #category : #accessing }
27+
GtLOnDemandMcpServer class >> uniqueInstanceOnPort: anInteger [
28+
29+
(self hasUniqueInstance and: [ self uniqueInstance port ~= anInteger ]) ifTrue:
30+
[ self error: 'An instance on port ', self uniqueInstance port asString, ' already started' ].
31+
^ uniqueInstance ifNil:
32+
[ uniqueInstance := self new
33+
port: anInteger;
34+
start ]
35+
]
36+
2137
{ #category : #private }
2238
GtLOnDemandMcpServer >> findAvailablePort [
2339
| socket |
@@ -26,12 +42,6 @@ GtLOnDemandMcpServer >> findAvailablePort [
2642
ensure: [ socket ifNotNil: [ socket closeAndDestroy ] ]
2743
]
2844

29-
{ #category : #initialization }
30-
GtLOnDemandMcpServer >> initialize [
31-
super initialize.
32-
self start
33-
]
34-
3545
{ #category : #testing }
3646
GtLOnDemandMcpServer >> isRunning [
3747
^ server notNil and: [ server isRunning ]
@@ -49,7 +59,12 @@ GtLOnDemandMcpServer >> onRemovedAsUniqueInstance [
4959

5060
{ #category : #accessing }
5161
GtLOnDemandMcpServer >> port [
52-
^ port
62+
^ port ifNil: [ port := self findAvailablePort ]
63+
]
64+
65+
{ #category : #accessing }
66+
GtLOnDemandMcpServer >> port: anInteger [
67+
port := anInteger
5368
]
5469

5570
{ #category : #accessing }
@@ -60,9 +75,8 @@ GtLOnDemandMcpServer >> server [
6075
{ #category : #starting }
6176
GtLOnDemandMcpServer >> start [
6277
self isRunning ifTrue: [ ^ self ].
63-
port := self findAvailablePort.
6478
server := GtLMcpServer new
65-
port: port;
79+
port: self port;
6680
addTools: GtLTools gt;
6781
start.
6882
GtLOnDemandMcpServerStartupSignal new

‎src/Gt4LlmCore/GtLOnDemandMcpServerExamples.class.st‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Class {
1111
GtLOnDemandMcpServerExamples >> runningServer [
1212
<gtExample>
1313
| onDemandServer |
14-
onDemandServer := GtLOnDemandMcpServer new.
14+
onDemandServer := GtLOnDemandMcpServer new start.
1515
[ self assert: onDemandServer isRunning.
1616
self assert: onDemandServer port > 0.
1717
self assert: onDemandServer server tools isEmpty not ]

0 commit comments

Comments
 (0)